/* nCurso — tema NSANDA (verde-petróleo #1F4241 · dourado #C9A227) */
:root {
  --nc-teal: #1F4241;
  --nc-teal-2: #2A5856;
  --nc-teal-3: #E8F0EF;
  --nc-gold: #C9A227;
  --nc-gold-2: #B08C1C;
  --nc-ink: #17201F;
  --nc-muted: #5E6B6A;
  --nc-bg: #F6F7F5;
  --bs-primary: #1F4241;
  --bs-primary-rgb: 31, 66, 65;
  --bs-link-color: #1F4241;
  --bs-link-hover-color: #B08C1C;
  --bs-body-font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --bs-body-color: var(--nc-ink);
  --bs-border-radius: .6rem;
}
body { background: var(--nc-bg); }
.text-gold { color: var(--nc-gold) !important; }
.text-teal { color: var(--nc-teal) !important; }
.bg-teal { background: var(--nc-teal) !important; }
.bg-teal-soft { background: var(--nc-teal-3) !important; }

.btn-primary { --bs-btn-bg: var(--nc-teal); --bs-btn-border-color: var(--nc-teal); --bs-btn-hover-bg: var(--nc-teal-2); --bs-btn-hover-border-color: var(--nc-teal-2); --bs-btn-active-bg: #163231; --bs-btn-disabled-bg: var(--nc-teal); --bs-btn-disabled-border-color: var(--nc-teal); }
.btn-outline-primary { --bs-btn-color: var(--nc-teal); --bs-btn-border-color: var(--nc-teal); --bs-btn-hover-bg: var(--nc-teal); --bs-btn-hover-border-color: var(--nc-teal); --bs-btn-active-bg: var(--nc-teal); }
.btn-gold { background: var(--nc-gold); color: #1b1606; border: 1px solid var(--nc-gold); font-weight: 600; }
.btn-gold:hover, .btn-gold:focus-visible, .btn-gold:active { background: var(--nc-gold-2); border-color: var(--nc-gold-2); color: #fff; }
.text-bg-primary { background-color: var(--nc-teal) !important; }
.form-control:focus, .form-select:focus { border-color: var(--nc-gold); box-shadow: 0 0 0 .2rem rgba(201,162,39,.2); }
.form-check-input:checked { background-color: var(--nc-teal); border-color: var(--nc-teal); }
.page-link { color: var(--nc-teal); }
.active > .page-link { background: var(--nc-teal); border-color: var(--nc-teal); }

/* Navegação */
.nc-nav { background: var(--nc-teal); box-shadow: 0 2px 12px rgba(0,0,0,.12); }
.nc-nav .nav-link { color: rgba(255,255,255,.82); font-weight: 500; }
.nc-nav .nav-link.active, .nc-nav .nav-link:hover { color: #fff; }
.nc-nav .nav-link.active { box-shadow: inset 0 -2px 0 var(--nc-gold); }

/* Hero */
.nc-hero {
  background:
    radial-gradient(1200px 400px at 85% -10%, rgba(201,162,39,.25), transparent 60%),
    linear-gradient(135deg, #1F4241 0%, #183635 60%, #122A29 100%);
  color: #fff; position: relative; overflow: hidden;
}
.nc-hero::after {
  content: ""; position: absolute; inset: auto -80px -120px auto; width: 380px; height: 380px;
  border: 40px solid rgba(201,162,39,.12); border-radius: 50%;
}
.nc-hero h1 { font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.nc-hero .lead { color: rgba(255,255,255,.85); }
.nc-hero .badge-prog { white-space: normal; text-align: left; line-height: 1.4;  background: rgba(201,162,39,.18); color: #F2D879; border: 1px solid rgba(201,162,39,.4); font-weight: 600; }
.nc-stat { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: .8rem; padding: 1rem 1.2rem; }
.nc-stat strong { display: block; font-size: 1.6rem; color: var(--nc-gold); font-weight: 800; }
.nc-stat span { font-size: .85rem; color: rgba(255,255,255,.75); }

.section-title { font-weight: 800; letter-spacing: -.01em; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 700; color: var(--nc-gold-2); }

/* Cartões */
.nc-card { border: 1px solid #e3e7e5; border-radius: .9rem; background: #fff; transition: transform .15s ease, box-shadow .15s ease; overflow: hidden; }
.nc-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(31,66,65,.12); }
.nc-card .cover { aspect-ratio: 16/8; background: var(--nc-teal-3); display: flex; align-items: center; justify-content: center; color: var(--nc-teal); font-size: 2.6rem; position: relative; }
.nc-card .cover img { width: 100%; height: 100%; object-fit: cover; }
.nc-card .cover .chip { position: absolute; top: .7rem; left: .7rem; font-size: .72rem; }
.nc-card .meta { font-size: .82rem; color: var(--nc-muted); }
.cat-tile { border: 1px solid #e3e7e5; background: #fff; border-radius: .9rem; padding: 1.1rem; height: 100%; text-decoration: none; color: inherit; display: block; transition: border-color .15s; }
.cat-tile:hover { border-color: var(--nc-gold); }
.cat-tile i { font-size: 1.6rem; color: var(--nc-gold-2); }
.step-num { width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--nc-gold); color: #1b1606; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }

.nc-panel { background: #fff; border: 1px solid #e3e7e5; border-radius: .9rem; }
.nc-footer { background: #142C2B; color: #fff; }
.nc-footer a { color: rgba(255,255,255,.8); text-decoration: none; }
.nc-footer a:hover { color: var(--nc-gold); }

/* Administração */
.nc-sidebar, .offcanvas-lg.nc-sidebar { background: var(--nc-teal) !important; width: 250px; min-height: 100vh; }
.btn-gold:disabled { opacity: .6; }
@media (min-width: 992px) { .nc-sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; flex-shrink: 0; } }
.nc-sidebar .offcanvas-header, .offcanvas-lg.nc-sidebar { background: var(--nc-teal); }
.nc-sidebar .nav-link { color: rgba(255,255,255,.8); border-radius: .5rem; padding: .55rem .75rem; }
.nc-sidebar .nav-link i { width: 1.4rem; display: inline-block; }
.nc-sidebar .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.nc-sidebar .nav-link.active { background: var(--nc-gold); color: #1b1606; font-weight: 600; }
.nc-admin-main { min-width: 0; }
.kpi { background: #fff; border: 1px solid #e3e7e5; border-radius: .9rem; padding: 1.1rem 1.2rem; height: 100%; }
.kpi .v { font-size: 1.8rem; font-weight: 800; color: var(--nc-teal); line-height: 1.1; }
.kpi .l { color: var(--nc-muted); font-size: .85rem; }
.kpi i { font-size: 1.4rem; color: var(--nc-gold-2); }
.table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--nc-muted); background: #f3f5f4; white-space: nowrap; }
.table td { vertical-align: middle; }
.bar { height: .5rem; background: #e8ecea; border-radius: 1rem; overflow: hidden; }
.bar > span { display: block; height: 100%; background: var(--nc-gold); }

.auth-wrap { max-width: 460px; }
.required::after { content: " *"; color: #b02a37; }

@media print {
  .no-print, .nc-nav, .nc-footer, .nc-sidebar, .btn, .alert { display: none !important; }
  body, .nc-admin-main { background: #fff !important; }
  .nc-panel { border: 0; }
  a { text-decoration: none; color: inherit; }
}
