/* Public Pages Styles */
.public-header { background: #fff; box-shadow: var(--shadow); position: sticky; top: 0; z-index: 100; height: 80px; }
.public-header .container { display: flex; justify-content: space-between; align-items: center; padding: 0 1rem; max-width: 1200px; margin: 0 auto; height: 100%; }
.public-header .logo { display: flex; align-items: center; }
.public-header .logo img { height: 120px; width: auto; margin: -20px 0; }
.public-header .logo-text { font-size: 1.25rem; font-weight: 700; color: var(--primary); }
.main-nav { display: flex; gap: 1.5rem; align-items: center; }
.main-nav a { color: var(--gray-600); font-weight: 500; }
.main-nav a:hover { color: var(--primary); text-decoration: none; }
.mobile-menu-btn { display: none; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--gray-600); }

/* Hero */
.hero { position: relative; min-height: 500px; display: flex; align-items: center; background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); color: #fff; overflow: hidden; }
.hero-banner { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0.3; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(30,64,175,0.9) 0%, rgba(59,130,246,0.8) 100%); }
.hero-content { position: relative; z-index: 1; text-align: center; padding: 4rem 1rem; width: 100%; max-width: 1200px; margin: 0 auto; }
.hero-logos { display: flex; justify-content: center; gap: 2rem; margin-bottom: 2rem; flex-wrap: wrap; }
.hero-logo { height: 120px; width: auto; background: #fff; padding: 10px 16px; border-radius: 12px; object-fit: contain; box-sizing: content-box; }
.hero-title { font-size: 2.75rem; margin-bottom: 0.5rem; color: #fff; font-weight: 700; }
.hero-subtitle { font-size: 1.5rem; opacity: 0.95; margin-bottom: 1.5rem; font-weight: 300; }
.hero-info { display: flex; justify-content: center; gap: 2rem; flex-wrap: wrap; margin-bottom: 2rem; }
.info-item { display: flex; align-items: center; gap: 0.5rem; font-size: 1.1rem; }
.info-item i { opacity: 0.8; }
.hero-cta { margin-top: 1rem; padding: 1rem 2.5rem; font-size: 1.1rem; }
.hero-cta.disabled { opacity: 0.7; cursor: not-allowed; }

/* Sections */
.section { padding: 4rem 0; }
.section .container { max-width: 1200px; margin: 0 auto; padding: 0 1rem; }
.section-title { font-size: 2rem; color: var(--gray-900); text-align: center; margin-bottom: 2.5rem; }
.section-about { background: #fff; }
.section-schedule { background: var(--gray-50); }

/* About Section */
.about-content { max-width: 800px; margin: 0 auto; }
.about-text { font-size: 1.1rem; line-height: 1.8; color: var(--gray-600); margin-bottom: 2rem; text-align: center; }
.about-highlight { display: flex; align-items: center; gap: 1rem; background: var(--gray-50); padding: 1.25rem 1.5rem; border-radius: var(--radius); margin-bottom: 1rem; }
.about-highlight i { font-size: 1.5rem; color: var(--primary); width: 40px; text-align: center; }
.about-highlight strong { display: block; font-size: 0.875rem; color: var(--gray-500); margin-bottom: 0.25rem; }
.about-highlight span { color: var(--gray-800); }
.about-card { background: #fff; padding: 1.5rem; border-radius: var(--radius-lg); box-shadow: var(--shadow); text-align: center; }
.about-card i { font-size: 2.5rem; color: var(--primary); margin-bottom: 1rem; }
.about-card h3 { margin-bottom: 0.5rem; }

/* Schedule */
.schedule-tabs { display: flex; justify-content: center; gap: 0.75rem; margin-bottom: 2rem; flex-wrap: wrap; }
.schedule-tab { display: flex; flex-direction: column; align-items: center; padding: 1rem 1.5rem; background: #fff; border: 2px solid var(--gray-200); border-radius: var(--radius); cursor: pointer; font-weight: 500; transition: all 0.2s; }
.schedule-tab .day-name { font-size: 0.875rem; }
.schedule-tab .day-date { font-size: 0.75rem; opacity: 0.7; }
.schedule-tab:hover, .schedule-tab.active { border-color: var(--primary); background: var(--primary); color: #fff; }
.schedule-content { max-width: 800px; margin: 0 auto; }
.schedule-day { display: none; }
.schedule-day.active { display: block; }
.schedule-item { display: flex; gap: 1.5rem; padding: 1.25rem; background: #fff; border-radius: var(--radius); margin-bottom: 1rem; box-shadow: var(--shadow); border-left: 4px solid var(--primary); }
.schedule-time { min-width: 80px; display: flex; flex-direction: column; }
.time-start { font-size: 1.1rem; font-weight: 600; color: var(--primary); }
.time-end { font-size: 0.875rem; color: var(--gray-500); }
.schedule-info { flex: 1; }
.schedule-type-badge { display: inline-block; padding: 0.25rem 0.75rem; font-size: 0.6875rem; font-weight: 600; text-transform: uppercase; border-radius: 9999px; background: rgba(30,64,175,0.1); color: var(--primary); margin-bottom: 0.5rem; }
.schedule-title { margin: 0 0 0.5rem; font-size: 1.1rem; }
.schedule-desc { margin: 0 0 0.5rem; font-size: 0.9375rem; color: var(--gray-600); }
.schedule-meta { display: flex; gap: 1rem; font-size: 0.8125rem; color: var(--gray-500); }
.schedule-meta span { display: flex; align-items: center; gap: 0.375rem; }
.schedule-type-palestra { border-left-color: #3b82f6; }
.schedule-type-workshop { border-left-color: #10b981; }
.schedule-type-abertura, .schedule-type-encerramento { border-left-color: #f59e0b; }
.schedule-type-intervalo { border-left-color: var(--gray-400); }

/* CTA */
.section-cta { background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); color: #fff; text-align: center; padding: 4rem 1rem; }
.cta-content { max-width: 600px; margin: 0 auto; }
.section-cta h2 { font-size: 2rem; margin-bottom: 1rem; color: #fff; }
.section-cta p { opacity: 0.9; margin-bottom: 1.5rem; font-size: 1.1rem; }
.section-cta .btn { background: var(--primary); color: #fff; border: 2px solid #fff; }
.section-cta .btn:hover { background: var(--secondary); }

/* Footer */
.public-footer { background: var(--gray-900); color: var(--gray-400); padding: 3rem 0 1.5rem; }
.public-footer .container { max-width: 1200px; margin: 0 auto; padding: 0 1rem; }
.footer-content { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 2rem; margin-bottom: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--gray-700); }
.footer-info h4 { color: #fff; margin-bottom: 0.5rem; }
.footer-info p { margin: 0; }
.footer-logos { display: flex; gap: 2rem; align-items: center; }
.footer-logos img { height: 40px; filter: brightness(0) invert(1); opacity: 0.7; }
.footer-bottom { text-align: center; }
.footer-bottom p { margin: 0; font-size: 0.875rem; }

/* Auth Pages */
.auth-section { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem 1rem; background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); }
.auth-container { width: 100%; max-width: 420px; }
.auth-card { background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 2rem; }
.auth-header { text-align: center; margin-bottom: 1.5rem; }
.auth-header img { height: 60px; margin-bottom: 1rem; }
.auth-header h1 { font-size: 1.5rem; margin-bottom: 0.25rem; color: var(--gray-900); }
.auth-header p { color: var(--gray-500); font-size: 0.9375rem; margin: 0; }
.auth-form { margin-bottom: 1.5rem; }
.auth-form .form-group { margin-bottom: 1rem; }
.auth-form label { display: block; margin-bottom: 0.375rem; font-size: 0.875rem; font-weight: 500; color: var(--gray-700); }
.auth-form .input-icon { position: relative; }
.auth-form .input-icon > i { position: absolute; left: 0.875rem; top: 50%; transform: translateY(-50%); color: var(--gray-400); }
.auth-form .input-icon input { width: 100%; padding: 0.75rem 0.875rem 0.75rem 2.5rem; font-size: 1rem; border: 1px solid var(--gray-300); border-radius: var(--radius); }
.auth-form .input-icon input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(30,64,175,0.1); }
.auth-form .toggle-password { position: absolute; right: 0.5rem; top: 50%; transform: translateY(-50%); background: none; border: none; padding: 0.5rem; cursor: pointer; color: var(--gray-400); }
.auth-form .toggle-password:hover { color: var(--gray-600); }
.btn-block { width: 100%; }
.auth-card-register { max-width: 560px; }
.auth-container:has(.auth-card-register) { max-width: 560px; }
.auth-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.auth-form .input-icon select { width: 100%; padding: 0.75rem 0.875rem 0.75rem 2.5rem; font-size: 1rem; border: 1px solid var(--gray-300); border-radius: var(--radius); background: #fff; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748b' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.75rem center; }
.auth-form .input-icon select:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(30,64,175,0.1); }
.auth-form .required { color: var(--danger); }
.auth-form .field-error { display: block; color: var(--danger); font-size: 0.8125rem; margin-top: 0.25rem; }
.auth-form .has-error input, .auth-form .has-error select { border-color: var(--danger); }
.form-info { display: flex; align-items: flex-start; gap: 0.75rem; padding: 1rem; background: #eff6ff; border-radius: var(--radius); margin-bottom: 1rem; font-size: 0.875rem; color: var(--primary); }
.form-info i { margin-top: 0.125rem; }
.success-message { text-align: center; padding: 2rem 1rem; }
.success-message i { font-size: 3rem; color: var(--success); margin-bottom: 1rem; }
.success-message h3 { color: var(--success); margin-bottom: 0.5rem; }
.success-message p { color: var(--gray-600); margin-bottom: 1.5rem; }
.form-options { text-align: right; margin-bottom: 1rem; }
.forgot-password { color: var(--primary); font-size: 0.875rem; text-decoration: none; }
.forgot-password:hover { text-decoration: underline; }
.email-status { position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%); }
.email-feedback { display: block; font-size: 0.8125rem; margin-top: 0.25rem; }
.auth-footer { text-align: center; padding-top: 1.5rem; border-top: 1px solid var(--gray-200); }
.auth-footer p { margin: 0.5rem 0; color: var(--gray-600); font-size: 0.9375rem; }
.auth-footer a { color: var(--primary); font-weight: 500; }
@media (max-width: 480px) { .auth-form .form-row { grid-template-columns: 1fr; } .auth-card-register { max-width: 100%; } }

/* Certificate Validation */
.validation-section { padding: 4rem 1rem; min-height: calc(100vh - 200px); display: flex; align-items: center; background: var(--gray-50); }
.validation-page { padding: 3rem 1rem; }
.validation-card { max-width: 600px; margin: 0 auto; background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); overflow: hidden; }
.validation-header { background: var(--primary); color: #fff; padding: 2rem; text-align: center; }
.validation-header i { font-size: 3rem; margin-bottom: 1rem; display: block; }
.validation-header h1 { font-size: 1.5rem; margin-bottom: 0.5rem; color: #fff; }
.validation-header p { margin: 0; opacity: 0.9; }
.validation-form { padding: 2rem; }
.validation-form .form-group { margin-bottom: 1.5rem; }
.validation-form .form-control-lg { font-size: 1.125rem; padding: 0.875rem 1rem; text-align: center; letter-spacing: 2px; text-transform: uppercase; }
.validation-result { padding: 2rem; text-align: center; }
.validation-result .result-icon { font-size: 4rem; margin-bottom: 1rem; }
.validation-result h2 { margin-bottom: 0.5rem; }
.validation-valid { color: #166534; }
.validation-valid .result-icon { color: #22c55e; }
.validation-invalid { color: #991b1b; }
.validation-invalid .result-icon { color: #ef4444; }
.certificate-details { background: #f8fafc; border-radius: var(--radius); padding: 1.5rem; margin: 1.5rem 0; text-align: left; }
.detail-item { display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--gray-200); }
.detail-item:last-child { border-bottom: none; }
.detail-item label { font-weight: 600; color: var(--gray-600); font-size: 0.875rem; }
.detail-item span { color: var(--gray-800); }
.detail-item .validation-code { font-family: monospace; font-weight: 600; color: var(--primary); }
.searched-code { margin: 1rem 0; color: var(--gray-600); }
.validation-details dt { font-weight: 600; color: var(--gray-600); font-size: 0.8125rem; }
.validation-details dd { margin: 0 0 1rem; }

@media (max-width: 768px) {
    .main-nav { display: none; position: absolute; top: 80px; left: 0; right: 0; background: #fff; flex-direction: column; padding: 1rem; gap: 0.5rem; box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 99; }
    .main-nav.open { display: flex; }
    .main-nav a { padding: 0.75rem 1rem; border-radius: var(--radius); }
    .main-nav a:hover { background: var(--gray-50); }
    .main-nav .btn { text-align: center; }
    .mobile-menu-btn { display: block; }
    .hero-title { font-size: 1.75rem; }
    .hero-subtitle { font-size: 1.1rem; }
    .hero-logo { height: auto; max-height: 70px; max-width: calc(100vw - 2rem); }
    .hero-info { flex-direction: column; gap: 0.75rem; }
    .schedule-item { flex-direction: column; gap: 0.75rem; }
    .schedule-time { flex-direction: row; gap: 0.5rem; align-items: center; }
    .footer-content { flex-direction: column; text-align: center; }
}
