/* ARQUIVO: public/styles.css (COMPLETO E FINAL) */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap');

:root {
    --primary-color: #FFD700; /* Dourado */
    --primary-hover: #f0c400;
    --dark-bg: #121212;
    --card-bg: #1f1f1f;
    --border-color: rgba(255, 215, 0, 0.2);
    --text-light: #f8f9fa;
    --text-muted-dark-theme: rgba(248, 249, 250, 0.6);
    --success-indicator: #28a745;

    /* Cores Natalinas */
    --christmas-red: #c8102e;
    --christmas-green: #00703c;
    --christmas-gold: #FFD700; 
    --christmas-white: #FFFFFF;
    --christmas-dark-bg: #1a1a1a; 
    --christmas-card-bg: #2d2d2d;
    --christmas-border: rgba(200, 16, 46, 0.3);
}
html { scroll-behavior: smooth; }

body {
    font-family: 'Poppins', sans-serif;
    color: var(--text-light);
    background-image: linear-gradient(rgba(18, 18, 18, 0.9), rgba(18, 18, 18, 0.9)), url('/images/fundo.jpg');
    background-size: cover; background-position: center center; background-attachment: scroll; background-repeat: no-repeat;
    transition: background-image 0.5s ease; 
}
h1, h2, h3, h4, h5, h6 { font-weight: 600; color: var(--text-light); }
section { padding: 100px 0; }
section:not(.hero-section) { background-color: rgba(18, 18, 18, 0); backdrop-filter: none; }
section.bg-light { background-color: rgba(31, 31, 31, 0.8) !important; }

.text-gold { color: var(--primary-color); }
.text-muted, .admin-tabs .table .text-muted, .admin-tabs .list-group-item.text-muted { color: var(--text-muted-dark-theme) !important; }

.card { background-color: rgba(31, 31, 31, 0.7); color: var(--text-light); border: 1px solid var(--border-color); border-radius: 1rem; box-shadow: 0 10px 40px rgba(0,0,0,0.2); backdrop-filter: blur(10px); transition: background-color 0.3s ease, border-color 0.3s ease; }
.form-control, .form-select { background-color: #333; color: var(--text-light); border-color: #444; transition: background-color 0.3s ease, border-color 0.3s ease; }
.form-control:focus, .form-select:focus { background-color: #333; color: var(--text-light); border-color: var(--primary-color); box-shadow: 0 0 0 0.25rem rgba(255, 215, 0, 0.25); }
.form-control::placeholder { color: var(--text-muted-dark-theme); }
.btn-primary { background-color: var(--primary-color); border-color: var(--primary-color); color: #121212; padding: 12px 30px; font-weight: 600; transition: all 0.3s ease; }
.btn-primary:hover { background-color: var(--primary-hover); border-color: var(--primary-hover); color: #121212; transform: translateY(-2px); box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
.btn-outline-primary { color: var(--primary-color); border-color: var(--primary-color); }
.btn-outline-primary:hover { background-color: var(--primary-color); border-color: var(--primary-color); color: var(--dark-bg); }
.btn i { margin-right: 8px; }
.navbar { transition: background-color 0.4s ease-out; }
.navbar.scrolled { background-color: rgba(18, 18, 18, 0.85) !important; backdrop-filter: blur(10px); box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
.navbar-brand { color: var(--primary-color) !important; }
.navbar-dark .navbar-toggler-icon { filter: invert(1); }
.offcanvas { background-color: var(--card-bg); color: var(--text-light); }
.offcanvas-header .btn-close { filter: invert(1); }
.offcanvas-title { color: var(--primary-color); }
.nav-link { color: rgba(255,255,255,0.7); }
.nav-link:hover, .nav-link.active { color: var(--primary-color); }
.hero-section { height: 100vh; background-image: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('/images/hero-background.jpg'); background-size: cover; background-position: center; background-attachment: fixed; display: flex; align-items: center; justify-content: center; color: var(--text-light); transition: background-image 0.5s ease; }
.hero-section .logo { position: relative; width: 140px; height: 140px; border-radius: 50%; object-fit: cover; border: 3px solid var(--primary-color); margin-bottom: 1.5rem; transition: border-color 0.3s ease; z-index: 1; }
.gallery-item { width: 100%; aspect-ratio: 1 / 1; border-radius: 50%; box-shadow: 0 5px 20px rgba(0,0,0,0.2); transition: transform 0.3s ease, box-shadow 0.3s ease; overflow: hidden; background-size: cover; background-position: center; border: 5px solid #2b2b2b; }
.gallery-item:hover { transform: scale(1.05) translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.3); }
@media (max-width: 767.98px) { #galeria-dinamica .col-lg-4.col-md-6.col-6 { flex: 0 0 50%; max-width: 50%; } }
.login-page { display: flex; align-items: center; justify-content: center; min-height: 100vh; }
.login-page .logo { width: 120px; height: 120px; border: 3px solid var(--primary-color); }
.login-page .card { background-color: rgba(31, 31, 31, 0.7); backdrop-filter: blur(10px); }
.login-page .nav-tabs { border-bottom: 1px solid #444; }
.login-page .nav-tabs .nav-link { color: var(--text-light); border: none; }
.login-page .nav-tabs .nav-link.active { color: var(--primary-color); border-bottom: 3px solid var(--primary-color); background-color: transparent; }
.admin-navbar { background-color: var(--card-bg); border-bottom: 1px solid var(--border-color); }
.admin-tabs .nav-tabs { border-bottom: 1px solid #444; }
.admin-tabs .nav-link { color: var(--text-light); }
.admin-tabs .nav-link.active { color: var(--primary-color); background-color: var(--dark-bg); border-color: #444 #444 var(--primary-color); }
.admin-tabs .tab-content { background-color: var(--card-bg); }
.reward-card { background-color: #1f1f1f; border: 1px solid var(--border-color); border-radius: 1rem; padding: 2rem; text-align: center; transition: all 0.3s ease; position: relative; }
.reward-card:hover { transform: translateY(-10px); box-shadow: 0 10px 30px rgba(255, 215, 0, 0.1); }
.reward-icon { font-size: 2.5rem; color: var(--primary-color); margin-bottom: 1rem; transition: color 0.3s ease; position: relative; z-index: 1; }
.reward-card h3 { color: var(--primary-color); font-weight: 600; font-size: 1.1rem; min-height: 48px; transition: color 0.3s ease; }
.progress-bar-custom { background-color: #333; border-radius: 20px; height: 10px; overflow: hidden; }
.progress-bar-fill { height: 100%; background: linear-gradient(90deg, #fceabb 0%, var(--primary-color) 100%); border-radius: 20px; transition: width 0.8s ease-in-out, background 0.3s ease; }
.progress-text { margin-top: 0.8rem; font-weight: 500; color: #ccc; }
.accordion-item, .accordion-button { background-color: #1f1f1f; border-color: var(--border-color); color: var(--text-light); transition: background-color 0.3s ease, border-color 0.3s ease; }
.accordion-button:not(.collapsed) { background-color: #2b2b2b; color: var(--primary-color); }
.accordion-button:focus { box-shadow: 0 0 0 0.25rem rgba(255, 215, 0, 0.25); }
.accordion-button::after { filter: invert(1) grayscale(100%) brightness(200%); }
.modal-content { background-color: var(--card-bg); color: var(--text-light); border: 1px solid var(--border-color); }
.btn-close-white { filter: invert(1) grayscale(100%) brightness(200%); }
.whatsapp-float { position: fixed; width: 60px; height: 60px; bottom: 40px; right: 40px; background-color: #25d366; color: #FFF; border-radius: 50px; text-align: center; font-size: 30px; box-shadow: 2px 2px 10px rgba(0,0,0,0.3); z-index: 1050; display: flex; align-items: center; justify-content: center; text-decoration: none; animation: pulse 2s infinite; transition: transform 0.3s ease; }
.whatsapp-float:hover { transform: scale(1.1); animation: none; }
@keyframes pulse { 0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7); } 70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(37, 211, 102, 0); } 100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); } }

/* Estilos Calendário Modal */
.calendar-modal .modal-content { background-color: var(--card-bg); border: 1px solid var(--border-color); }
.calendar-modal .modal-header { border-bottom: 1px solid var(--border-color); }
#calendar-header h5 { color: var(--primary-color); }
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.5rem; text-align: center; }
#calendar-grid-header { font-size: 0.8rem; font-weight: 600; color: var(--text-muted-dark-theme); padding-bottom: 0.5rem; }
.calendar-day { position: relative; padding: 0.75rem 0; border-radius: 0.25rem; cursor: default; color: var(--text-light); }
.calendar-day.disabled { color: rgba(255, 255, 255, 0.25); text-decoration: line-through; }
.calendar-day.weekend:not(.disabled) { background-color: rgba(255, 255, 255, 0.05); }
.calendar-day.today { background-color: rgba(255, 215, 0, 0.2); font-weight: 700; }
.calendar-day.available:not(.disabled) { cursor: pointer; font-weight: 600; transition: background-color 0.2s ease; }
.calendar-day.available:hover { background-color: #333; }
.calendar-day.available::after { content: ''; position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); width: 20px; height: 3px; background-color: var(--success-indicator); border-radius: 2px; }
.calendar-day.selected { background-color: var(--primary-color) !important; color: var(--dark-bg) !important; font-weight: 700; }
#time-slots-wrapper { border-left: 1px solid var(--border-color); padding-left: 1.5rem; }
#time-slots-container { max-height: 300px; overflow-y: auto; }
@media (max-width: 767.98px) { #time-slots-wrapper { border-left: none; border-top: 1px solid var(--border-color); padding-left: 0; padding-top: 1.5rem; margin-top: 1.5rem; } }
#prev-month-btn, #next-month-btn { padding: 0.25rem 0.75rem; font-size: 0.9rem; }

/* Estilos Toast */
.toast-container .toast { background-color: var(--card-bg); color: var(--text-light); border: 1px solid var(--border-color); box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); }
.toast-header { background-color: rgba(255,255,255,.08); color: var(--text-light); border-bottom: 1px solid var(--border-color); }
.toast-body { font-weight: 500; }
.toast .btn-close-white { filter: none; }
.toast.text-bg-success { background-color: #198754 !important; color: white !important; border: none; }
.toast.text-bg-success .btn-close-white { filter: invert(1) grayscale(100%) brightness(200%); }

/* Estilos Preview Logo Admin */
#logo-preview-wrapper {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    border: 3px solid var(--border-color);
    background-color: var(--dark-bg);
    margin: 0 auto 1rem;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
#logo-preview-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ===================================== */
/* ESTILOS DO TEMA NATALINO              */
/* ===================================== */
@keyframes christmasGlow { 0%, 100% { box-shadow: 0 0 5px rgba(255, 255, 255, 0.2), 0 0 10px rgba(200, 16, 46, 0.3); } 50% { box-shadow: 0 0 10px rgba(255, 255, 255, 0.4), 0 0 20px rgba(200, 16, 46, 0.6); } }
body.christmas-theme { background-image: linear-gradient(rgba(10, 20, 10, 0.85), rgba(10, 20, 10, 0.85)), url('/images/fundo-natal.jpg'); --primary-color: var(--christmas-red); --primary-hover: #a50d25; --border-color: var(--christmas-border); --card-bg: var(--christmas-card-bg); }
body.christmas-theme .text-gold { color: var(--christmas-gold) !important; }
body.christmas-theme .navbar-brand, body.christmas-theme .nav-link:hover, body.christmas-theme .nav-link.active, body.christmas-theme .reward-card h3, body.christmas-theme .accordion-button:not(.collapsed), body.christmas-theme .login-page .nav-tabs .nav-link.active, body.christmas-theme .admin-tabs .nav-link.active, body.christmas-theme #calendar-header h5 { color: var(--christmas-red) !important; }
body.christmas-theme .login-page .nav-tabs .nav-link.active { border-bottom-color: var(--christmas-red); }
body.christmas-theme .admin-tabs .nav-link.active { border-color: #444 #444 var(--christmas-red); }
body.christmas-theme .btn-primary { background-color: var(--christmas-red); border-color: var(--christmas-red); color: var(--christmas-white); }
body.christmas-theme .btn-primary:hover { background-color: var(--primary-hover); border-color: var(--primary-hover); color: var(--christmas-white); animation: none; }
body.christmas-theme .btn-outline-primary { color: var(--christmas-red); border-color: var(--christmas-red); }
body.christmas-theme .btn-outline-primary:hover { background-color: var(--christmas-red); border-color: var(--christmas-red); color: var(--christmas-white); }
body.christmas-theme .hero-section .logo { border-color: var(--christmas-red); animation: christmasGlow 3s infinite ease-in-out; }
body.christmas-theme .progress-bar-fill { background: linear-gradient(90deg, #e44d4d 0%, var(--christmas-red) 100%); }
body.christmas-theme .form-control:focus, body.christmas-theme .form-select:focus { border-color: var(--christmas-red); box-shadow: 0 0 0 0.25rem rgba(200, 16, 46, 0.25); }
body.christmas-theme .accordion-button:focus { box-shadow: 0 0 0 0.25rem rgba(200, 16, 46, 0.25); }
body.christmas-theme .calendar-day.selected, body.christmas-theme .calendar-day.selected:hover { background-color: var(--christmas-red) !important; color: var(--christmas-white) !important; }
body.christmas-theme .calendar-day.today { background-color: rgba(200, 16, 46, 0.2); }
body.christmas-theme .calendar-day.available::after { background-color: var(--christmas-green); }
body.christmas-theme .hero-section .btn-primary { animation: christmasGlow 2.5s infinite ease-in-out; }
/* Gorro de Papai Noel */
.christmas-hat-icon { position: absolute; width: 40px; height: 40px; background-image: url('/images/santa-hat.png'); background-size: contain; background-repeat: no-repeat; z-index: 10; display: none; /* Escondido por padrão */ }
.hero-section .logo-wrapper { position: relative; display: inline-block; }
.hero-section .logo-wrapper .christmas-hat-icon { top: -20px; right: -10px; width: 60px; height: 60px; }
.reward-card .reward-icon.christmas-hat-positioned { position: relative; display: inline-block; }
.reward-card .reward-icon .christmas-hat-icon { top: -15px; right: -10px; width: 30px; height: 30px; display: block; }
#promoModal .modal-title .christmas-hat-icon { top: -10px; right: -10px; width: 25px; height: 25px; }
body.christmas-theme .reward-icon.bi-magic::before { content: "\F3F0"; font-family: bootstrap-icons !important; z-index: 5;}
body.christmas-theme .reward-icon.bi-gem::before { content: "\F586"; font-family: bootstrap-icons !important; z-index: 5;}
body.christmas-theme #promoModal .modal-title::before { content: "\F57F \00a0"; font-family: bootstrap-icons !important; z-index: 5;}