:root {
  --ifrn: #2f9e41;
  --ifrn-escuro: #1e7a2e;
  --ifrn-claro: #e8f5ea;
  --ifrn-vermelho: #cd191e;
}
body { background: #f4f6f5; min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
.bg-ifrn { background: var(--ifrn); }
.text-ifrn { color: var(--ifrn); }
.btn-ifrn { --bs-btn-bg: var(--ifrn); --bs-btn-border-color: var(--ifrn); --bs-btn-hover-bg: var(--ifrn-escuro); --bs-btn-hover-border-color: var(--ifrn-escuro); --bs-btn-active-bg: var(--ifrn-escuro); --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-disabled-bg: var(--ifrn); --bs-btn-disabled-border-color: var(--ifrn); }

/* logotipo simplificado: 4 quadrados (um vermelho) */
.logo-if { display: grid; grid-template-columns: 12px 12px; gap: 3px; }
.logo-if span { width: 12px; height: 12px; background: #fff; border-radius: 2px; }
.logo-if span:first-child { background: var(--ifrn-vermelho); border-radius: 50%; }
.navbar-brand small { font-size: .7rem; letter-spacing: .1em; }
.avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(255,255,255,.6); }

.card { border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.card-atividade { border-left: 5px solid #adb5bd; }
.card-atividade.aberta { border-left-color: var(--ifrn); }

.hero { background: linear-gradient(135deg, var(--ifrn) 0%, var(--ifrn-escuro) 100%); color: #fff; border-radius: 1rem; }

.dropzone { border: 3px dashed #b7c9ba; border-radius: 1rem; background: #fff; padding: 3rem 1rem; text-align: center; transition: .15s; cursor: pointer; }
.dropzone.sobre { border-color: var(--ifrn); background: var(--ifrn-claro); }
.dropzone .bi { font-size: 3.5rem; color: var(--ifrn); }

.arvore { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .85rem; max-height: 340px; overflow: auto; background: #fafafa; border-radius: .5rem; padding: .75rem; white-space: pre; }

.explorer details { margin-left: .9rem; }
.explorer > details { margin-left: 0; }
.explorer summary { cursor: pointer; padding: 2px 4px; border-radius: 4px; list-style: none; }
.explorer summary::-webkit-details-marker { display: none; }
.explorer summary::before { content: "▸ "; color: #888; }
.explorer details[open] > summary::before { content: "▾ "; }
.explorer a.arq { display: block; margin-left: 1.9rem; padding: 2px 6px; border-radius: 4px; text-decoration: none; color: #333; font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.explorer a.arq:hover { background: var(--ifrn-claro); }
.explorer a.arq.ativo { background: var(--ifrn); color: #fff; }
.codigo pre { margin: 0; max-height: 75vh; overflow: auto; }
.codigo pre code.hljs { font-size: .85rem; padding: 1rem; }

.table td, .table th { vertical-align: middle; }
