/* =========================================================================
   RCR Cursos - Estilos
   Cores da marca: azul (globo) / vermelho (selo CURSOS) / prata
   ========================================================================= */
:root {
    --rcr-blue: #0b3a82;
    --rcr-blue-2: #1557b8;
    --rcr-red: #c4161c;
    --rcr-red-2: #e02a2f;
    --rcr-silver: #eef1f5;
    --rcr-dark: #0d1b2e;
}

body { font-family: 'Open Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; color: #2b3445; }
h1, h2, h3, h4, h5, .brand-text, .section-title, .navbar { font-family: 'Montserrat', system-ui, sans-serif; }
a { color: var(--rcr-blue-2); }

/* ---------- Botões ---------- */
.btn-rcr { background: linear-gradient(135deg, var(--rcr-blue), var(--rcr-blue-2)); color: #fff; border: 0; font-weight: 600; }
.btn-rcr:hover, .btn-rcr:focus { background: var(--rcr-blue); color: #fff; }
.btn-rcr-red { background: linear-gradient(180deg, var(--rcr-red-2), var(--rcr-red)); color: #fff; border: 0; font-weight: 700; box-shadow: 0 4px 12px rgba(196, 22, 28, .3); }
.btn-rcr-red:hover, .btn-rcr-red:focus { background: var(--rcr-red); color: #fff; }
.btn-outline-rcr { border: 2px solid var(--rcr-blue-2); color: var(--rcr-blue-2); font-weight: 600; }
.btn-outline-rcr:hover, .btn-outline-rcr.active { background: var(--rcr-blue-2); color: #fff; }

/* ---------- Navbar ---------- */
.brand-text { font-weight: 800; font-size: 1.35rem; color: var(--rcr-blue); letter-spacing: .5px; }
.brand-text span { color: var(--rcr-red); }
.public .nav-link { font-weight: 600; color: #34425a; }
.public .nav-link:hover { color: var(--rcr-red); }

/* ---------- Hero ---------- */
.hero { background: var(--rcr-silver); }
.hero-banner { max-height: 620px; object-fit: cover; object-position: center; }
.hero-curso { position: relative; height: min(56.25vw, 620px); min-height: 320px; overflow: hidden; }
.hero-curso::before { content: ''; position: absolute; inset: -30px; background: var(--bg) center / cover no-repeat; filter: blur(18px) brightness(.45); transform: scale(1.1); }
.hero-curso::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 58, 130, .55), rgba(13, 27, 46, .75)); }
.hero-curso > .container { position: relative; z-index: 1; }
.hero-curso-img { max-height: min(48vw, 540px); max-width: 100%; border-radius: 12px; box-shadow: 0 20px 40px rgba(0, 0, 0, .45); }
.hero-curso-title { font-weight: 800; font-size: clamp(1.1rem, 3.4vw, 2.6rem); text-shadow: 0 2px 8px rgba(0, 0, 0, .4); }
.carousel-indicators [data-bs-target] { width: 12px; height: 12px; border-radius: 50%; }

/* ---------- Seções ---------- */
.features { background: linear-gradient(135deg, var(--rcr-blue), var(--rcr-dark)); color: #fff; }
.feature { display: flex; flex-direction: column; align-items: center; gap: .4rem; font-weight: 600; font-size: .95rem; }
.feature i { font-size: 1.8rem; color: #ffd166; }
.section-kicker { display: inline-block; color: var(--rcr-red); font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; font-size: .8rem; }
.section-title { font-weight: 800; color: var(--rcr-blue); }
.bg-light-rcr { background: var(--rcr-silver); }
.step { background: #fff; border-radius: 16px; padding: 1.75rem 1rem; height: 100%; box-shadow: 0 6px 20px rgba(13, 27, 46, .06); }
.step-icon { width: 70px; height: 70px; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center; font-size: 1.7rem; color: #fff; background: linear-gradient(135deg, var(--rcr-red-2), var(--rcr-red)); }
.step h5 { font-weight: 700; color: var(--rcr-blue); }
.cta { background: linear-gradient(135deg, var(--rcr-red), #8e0e13); }

/* ---------- Cards de cursos ---------- */
.curso-card { border: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 28px rgba(13, 27, 46, .09); transition: transform .2s, box-shadow .2s; }
.curso-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(13, 27, 46, .15); }
.curso-media { position: relative; height: 280px; background: var(--rcr-silver); }
.curso-media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.curso-sem-imagem { height: 100%; display: grid; place-items: center; font-size: 4rem; color: #fff; background: linear-gradient(135deg, var(--rcr-blue), var(--rcr-blue-2)); }
.curso-badge { position: absolute; top: 12px; left: 12px; font-size: .78rem; padding: .45em .8em; z-index: 3; }
.curso-destaque { position: absolute; top: 12px; right: 12px; z-index: 3; }
.badge-presencial { background: #198754; color: #fff; }
.badge-online { background: var(--rcr-blue-2); color: #fff; }
.badge-semipresencial { background: #6f42c1; color: #fff; }
.curso-badge-static { font-size: .85rem; padding: .5em .9em; }
.curso-title { font-size: 1.1rem; font-weight: 700; color: var(--rcr-blue); }
.curso-info li { margin-bottom: .3rem; }
.curso-info i { color: var(--rcr-red); }
.curso-preco { font-weight: 800; font-size: 1.15rem; color: var(--rcr-red); font-family: 'Montserrat', sans-serif; }

/* ---------- Página do curso ---------- */
.curso-header { background: var(--rcr-silver); }
.curso-page-title { font-weight: 800; color: var(--rcr-blue); font-size: clamp(1.5rem, 3vw, 2.3rem); }
.galeria-img { max-height: 620px; object-fit: contain; background: #fff; }
.galeria-thumb { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; cursor: pointer; border: 2px solid transparent; }
.galeria-thumb:hover { border-color: var(--rcr-red); }
.info-box { display: flex; gap: .8rem; align-items: flex-start; background: var(--rcr-silver); border-radius: 12px; padding: .9rem 1rem; height: 100%; }
.info-box i { font-size: 1.3rem; color: var(--rcr-red); margin-top: .2rem; width: 24px; text-align: center; }
.info-box small { display: block; color: #6c757d; font-size: .75rem; text-transform: uppercase; letter-spacing: .5px; }
.valores-box { display: flex; flex-wrap: wrap; gap: 1rem; border: 2px dashed rgba(196, 22, 28, .35); border-radius: 12px; padding: 1rem 1.2rem; }
.valores-box > div { flex: 1 1 140px; }
.valores-box small { display: block; color: #6c757d; }
.valores-box strong { font-size: 1.2rem; color: var(--rcr-red); }
.matricula-box { background: #fff; border-radius: 16px; padding: 1.5rem; box-shadow: 0 8px 28px rgba(13, 27, 46, .1); border-top: 4px solid var(--rcr-red); }

/* ---------- Rodapé ---------- */
.site-footer { background: var(--rcr-dark); color: #dfe6f1; }
.site-footer a { color: #dfe6f1; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.footer-bottom { background: rgba(0, 0, 0, .25); }
.whatsapp-float { position: fixed; right: 20px; bottom: 20px; width: 58px; height: 58px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; font-size: 2rem; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); z-index: 1050; transition: transform .2s; }
.whatsapp-float:hover { color: #fff; transform: scale(1.08); }

/* =========================================================================
   Autenticação (login / cadastro)
   ========================================================================= */
.auth-page { min-height: 100vh; background: linear-gradient(135deg, rgba(11, 58, 130, .92), rgba(13, 27, 46, .95)), url('../../uploads/banner_2.jpg') center / cover; display: flex; align-items: center; padding: 2rem 0; }
.auth-card { border: 0; border-radius: 18px; box-shadow: 0 20px 50px rgba(0, 0, 0, .35); }
.auth-card .auth-logo { width: 96px; height: 96px; }
.auth-card h1 { font-size: 1.4rem; font-weight: 800; color: var(--rcr-blue); }

/* =========================================================================
   Painéis (gestor e aluno)
   ========================================================================= */
.panel-body { background: #f3f5f9; min-height: 100vh; }
.sidebar { width: 250px; min-height: 100vh; background: linear-gradient(180deg, var(--rcr-dark), var(--rcr-blue)); color: #fff; position: fixed; top: 0; left: 0; z-index: 1040; transition: transform .25s; display: flex; flex-direction: column; }
.sidebar .brand { padding: 1.1rem 1rem; display: flex; align-items: center; gap: .6rem; border-bottom: 1px solid rgba(255, 255, 255, .1); color: #fff; text-decoration: none; }
.sidebar .brand img { width: 44px; height: 44px; }
.sidebar .brand span { font-family: 'Montserrat', sans-serif; font-weight: 800; line-height: 1.1; }
.sidebar .brand small { display: block; font-weight: 400; font-size: .72rem; opacity: .75; }
.sidebar .nav-link { color: rgba(255, 255, 255, .8); padding: .7rem 1.2rem; border-left: 3px solid transparent; font-weight: 600; font-size: .92rem; }
.sidebar .nav-link i { width: 22px; }
.sidebar .nav-link:hover { color: #fff; background: rgba(255, 255, 255, .06); }
.sidebar .nav-link.active { color: #fff; background: rgba(255, 255, 255, .12); border-left-color: var(--rcr-red-2); }
.sidebar .nav-link .badge { font-size: .7rem; }
.panel-main { margin-left: 250px; min-height: 100vh; display: flex; flex-direction: column; }
.panel-topbar { background: #fff; padding: .75rem 1.25rem; box-shadow: 0 2px 10px rgba(13, 27, 46, .06); position: sticky; top: 0; z-index: 1030; }
.panel-content { padding: 1.5rem 1.25rem; flex: 1; }
.page-title { font-weight: 800; color: var(--rcr-blue); font-size: 1.4rem; margin: 0; }
.sidebar-backdrop { display: none; }
@media (max-width: 991.98px) {
    .sidebar { transform: translateX(-100%); }
    .sidebar.show { transform: none; }
    .sidebar-backdrop.show { display: block; position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 1035; }
    .panel-main { margin-left: 0; }
}

.stat-card { border: 0; border-radius: 14px; box-shadow: 0 6px 20px rgba(13, 27, 46, .07); }
.stat-card .stat-icon { width: 54px; height: 54px; border-radius: 12px; display: grid; place-items: center; font-size: 1.4rem; color: #fff; }
.stat-card .stat-value { font-size: 1.6rem; font-weight: 800; font-family: 'Montserrat', sans-serif; line-height: 1.1; }
.stat-card .stat-label { color: #6c757d; font-size: .85rem; }
.card-panel { border: 0; border-radius: 14px; box-shadow: 0 6px 20px rgba(13, 27, 46, .07); }
.card-panel > .card-header { background: #fff; border-bottom: 1px solid #edf0f5; font-weight: 700; color: var(--rcr-blue); border-radius: 14px 14px 0 0; padding: .9rem 1.1rem; }
.table-panel th { font-size: .78rem; text-transform: uppercase; letter-spacing: .4px; color: #6c757d; white-space: nowrap; }
.table-panel td { vertical-align: middle; }
.thumb-curso { width: 54px; height: 54px; object-fit: cover; border-radius: 8px; background: var(--rcr-silver); }
.img-slot { position: relative; border: 2px dashed #cfd6e2; border-radius: 12px; height: 150px; display: grid; place-items: center; overflow: hidden; background: #fafbfd; cursor: pointer; }
.img-slot img { width: 100%; height: 100%; object-fit: cover; }
.img-slot .btn-remove { position: absolute; top: 6px; right: 6px; }
.img-slot .slot-label { color: #8a94a6; text-align: center; font-size: .85rem; }
.meu-curso-card { border: 0; border-radius: 14px; overflow: hidden; box-shadow: 0 6px 20px rgba(13, 27, 46, .08); }
.meu-curso-card img { height: 170px; object-fit: cover; object-position: top; }
.empty-state { text-align: center; padding: 2.5rem 1rem; color: #8a94a6; }
.empty-state i { font-size: 2.6rem; margin-bottom: .7rem; }
