/* Trilhas de conhecimento (/knowledge.php) — cards no topo + mapa por trilha. Self-contained. */
#kn_wrap{ max-width:1100px; }
.kn-legok{ color:#20c997; font-weight:600; }

/* Título do segmento (área) que agrupa as trilhas: Segurança, TI / Infraestrutura, … */
.kn-segtit{ font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:1px;
    color:#8a9199; margin:18px 0 2px; padding-bottom:4px; border-bottom:1px solid #33383d; }
.kn-segtit:first-child{ margin-top:6px; }

/* Cards grandes no topo */
.kn-cards{ display:flex; gap:14px; flex-wrap:wrap; margin:10px 0 22px; }
.kn-card{ flex:1 1 210px; min-width:190px; background:#1b1e21; color:#e9ecef; border:2px solid #33383d;
    border-radius:14px; padding:20px 16px; cursor:pointer; text-align:center;
    transition:transform .12s, border-color .12s, box-shadow .12s; }
.kn-card:hover{ transform:translateY(-3px); border-color:#20c997; box-shadow:0 8px 24px rgba(0,0,0,.25); }
.kn-card.kn-ativo{ border-color:#20c997; box-shadow:0 0 0 3px rgba(32,201,151,.18); }
/* Trilha ATIVA do aluno (person_trilha.ativa=1) — fill verde, igual ao .kn-ativabadge. */
.kn-card.kn-minha{ background:#123524; border-color:#20c997; color:#d7ffd9; }
.kn-card.kn-minha i{ color:#6dffa0; }
.kn-card.kn-minha .kn-cardcov{ color:#8fe0ac; }
.kn-card i{ font-size:2rem; display:block; margin-bottom:10px; color:#20c997; }
.kn-cardnome{ display:block; font-weight:700; font-size:1.1rem; }
.kn-cardcov{ display:block; font-size:.82rem; color:#9aa0a6; margin-top:6px; }

/* Cabeçalho da trilha (descrição + ação Iniciar) */
.kn-thead{ background:#0d1611; border:1px solid #24382a; border-radius:12px; padding:14px 16px; margin-bottom:18px; }
.kn-tdesc{ margin:0 0 10px; color:#b9c9bd; }
.kn-ativabadge{ color:#6dffa0; background:#123524; border-radius:8px; padding:6px 12px; font-weight:600; display:inline-block; }

/* Níveis / certificações */
.kn-nivel{ font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:.8rem; color:#8fae95;
    border-bottom:2px solid #24382a; padding-bottom:4px; margin:26px 0 12px; }
.kn-cert{ margin:0 0 16px; }
.kn-certhead{ margin-bottom:8px; }
.kn-star{ color:#f6c23e; margin-right:4px; }
.kn-sigla{ font-size:1.05rem; color:#d7ffd9; }
.kn-certnome{ color:#8fae95; font-size:.9rem; margin-left:6px; }

/* Grupos e conceitos (com as aulas que abordam cada conceito) */
.kn-grupo{ margin:0 0 12px 4px; }
.kn-gruponome{ font-weight:700; font-size:.92rem; color:#d7ffd9; margin-bottom:4px; }
.kn-concs{ list-style:none; margin:0; padding:0; }
.kn-conc{ padding:6px 10px; border-left:3px solid #2a3a2d; margin:0 0 5px; border-radius:0 6px 6px 0;
    background:#0c130d; color:#d7ffd9; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.kn-conc.kn-tem{ border-left-color:#20c997; background:#0d2018; }
.kn-cn{ font-weight:500; }
.kn-conc.kn-falta .kn-cn{ color:#6f8a75; }
.kn-aula{ display:inline-block; background:#198754; color:#fff !important; text-decoration:none;
    border-radius:14px; padding:2px 10px; font-size:.83rem; }
.kn-aula:hover{ background:#146c43; }
.kn-estrela{ color:#f6c23e; margin-left:2px; }
/* Capítulo de livro (Livrebook) que aborda o conceito — mesmo formato do .kn-aula,
   cor diferente (âmbar) pra distinguir leitura de vídeo. */
.kn-livro{ display:inline-block; background:#9c6b1f; color:#fff !important; text-decoration:none;
    border:none; cursor:pointer; border-radius:14px; padding:2px 10px; font-size:.83rem; font-family:inherit; }
.kn-livro:hover{ background:#7c5518; }
/* Slide (deck do Livrebook) anexado manualmente ao conceito — pill roxo, ao lado do livro. */
.kn-slide{ display:inline-block; background:#6f42c1; color:#fff !important; text-decoration:none;
    border:none; cursor:pointer; border-radius:14px; padding:2px 10px; font-size:.83rem; font-family:inherit; }
.kn-slide:hover{ background:#59349e; }
/* Conceito com >2 capítulos de livro: só mostra 2 + este botão "Mostrar mais N" que
   expande/recolhe o restante (kn-livroextra). display:contents (não flex/inline-block)
   pra não quebrar o flex-wrap do .kn-conc quando os itens escondidos viram visíveis. */
.kn-livroextra{ display:none; }
.kn-livroextra.kn-aberto{ display:contents; }
.kn-livromais{ display:inline-block; background:none; color:#7c8f80 !important; text-decoration:none;
    border:1px dashed #3a4a3e; cursor:pointer; border-radius:14px; padding:2px 10px; font-size:.83rem; font-family:inherit; }
.kn-livromais:hover{ color:#d7ffd9 !important; border-color:#20c997; }

/* Modal do capítulo do livro — abre em iframe em vez de baixar o PDF direto. */
.kn-modallivro{ position:fixed; inset:0; background:rgba(0,0,0,.75); z-index:2000;
    display:flex; align-items:center; justify-content:center; padding:20px; }
.kn-modallivrocaixa{ background:#0a0f0b; border:1px solid #20c997; border-radius:8px;
    width:min(900px, 100%); height:min(80vh, 900px); display:flex; flex-direction:column; overflow:hidden; }
.kn-modallivrotopo{ display:flex; align-items:center; justify-content:space-between;
    padding:10px 14px; background:#0d2018; border-bottom:1px solid #20c997; }
.kn-modallivrotitulo{ color:#6dffa0; font-weight:600; }
.kn-modallivrofechar{ background:none; border:none; color:#d7ffd9; font-size:1.4rem;
    line-height:1; cursor:pointer; padding:0 4px; }
.kn-modallivrofechar:hover{ color:#f6c23e; }
.kn-modallivroiframe{ flex:1; border:none; width:100%; background:#0a0f0b; }
/* Bolinha de status: verde = aula já assistida (aula_concluida), amarelo = ainda não.
   Mesma bolinha no botão do capítulo de livro: verde = leitura concluída (rolou até o
   fim em livro_capitulo.php), amarelo = ainda não. */
.kn-pontostatus{ font-size:.55rem; vertical-align:middle; margin-right:2px; }
.kn-assistida .kn-pontostatus, .kn-lida .kn-pontostatus{ color:#6dffa0; }
.kn-naoassistida .kn-pontostatus, .kn-naolida .kn-pontostatus{ color:#f6c23e; }
.kn-soon{ font-size:.78rem; color:#7c8f80; font-style:italic; }

/* ADMIN (dono): vincular vídeo/livro/slide ao conceito, direto no knowledge.php.
   Só renderiza p/ admin (ver $eh_admin). Reusa as rotas do admin/trilhas.php. */
.kn-admbtn{ display:inline-block; background:none; color:#5aa0ff !important; border:1px dashed #2f4a6e;
    cursor:pointer; border-radius:14px; padding:2px 10px; font-size:.8rem; font-family:inherit; }
.kn-admbtn:hover{ color:#bcd8ff !important; border-color:#5aa0ff; }
/* Painel abre em linha própria dentro do .kn-conc (flex-wrap) — daí o flex-basis:100%. */
.kn-admpanel{ flex:0 0 100%; margin-top:6px; padding:8px 10px; background:#0a1420;
    border:1px solid #24405f; border-radius:6px; }
.kn-admlista{ margin-bottom:6px; }
.kn-admrow{ display:flex; align-items:center; gap:8px; padding:2px 0; color:#cfe4ff; font-size:.84rem; }
.kn-admrowt{ flex:1; }
.kn-admrem{ color:#f6c23e; font-style:italic; }
.kn-admx{ background:none; border:1px solid #7a2a2a; color:#ff9a9a; cursor:pointer;
    border-radius:12px; padding:1px 9px; font-size:.76rem; font-family:inherit; }
.kn-admx:hover{ background:#3a1414; }
.kn-admadd{ display:flex; gap:6px; flex-wrap:wrap; }
.kn-admadb{ background:#123; border:1px solid #24405f; color:#bcd8ff; cursor:pointer;
    border-radius:12px; padding:2px 10px; font-size:.8rem; font-family:inherit; }
.kn-admadb:hover, .kn-admadb.kn-admativo{ background:#1b3a5c; border-color:#5aa0ff; color:#fff; }
.kn-admpicker{ margin-top:6px; }
.kn-admin{ width:100%; max-width:420px; background:#06101a; border:1px solid #24405f; color:#e9f2ff;
    border-radius:5px; padding:4px 8px; font-size:.84rem; }
.kn-admres, .kn-admcaps{ margin-top:5px; display:flex; flex-direction:column; gap:3px; }
.kn-admcaps{ flex-direction:row; flex-wrap:wrap; }
.kn-admopt{ display:inline-block; text-align:left; background:#0d1f30; border:1px solid #24405f;
    color:#cfe4ff; cursor:pointer; border-radius:5px; padding:3px 9px; font-size:.82rem; font-family:inherit; }
.kn-admopt:hover{ background:#1b3a5c; border-color:#5aa0ff; color:#fff; }
.kn-admgo{ margin-top:6px; background:#1b3a5c; }
.kn-admmsg{ display:block; margin-top:5px; }
