/* ── COMUNIDADE ── */

.comm-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.comm-toolbar-sep { flex: 1; }

.comm-total {
  font-size: 11px;
  color: var(--dim);
  font-family: 'Geist Mono','JetBrains Mono', monospace;
}

.comm-pub-btn {
  background: var(--blue);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 12px;
  font-family: 'Geist','Inter',sans-serif;
  padding: 6px 14px;
  cursor: pointer;
  transition: opacity .15s;
}
.comm-pub-btn:hover { opacity: .85; }

/* ── Grid ── */
.comm-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 14px;
}

/* ── Card ── */
.comm-card {
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: border-color .15s;
}
.comm-card:hover { border-color: var(--line-2); }

.comm-card-top {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.comm-card-info { flex: 1; min-width: 0; }

.comm-card-nome {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: 'Geist','Inter',sans-serif;
}

.comm-card-meta {
  font-size: 11px;
  color: var(--muted);
  font-family: 'Geist Mono','JetBrains Mono',monospace;
  margin-top: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.comm-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}

.comm-tag {
  font-size: 10px;
  font-family: 'Geist Mono','JetBrains Mono', monospace;
  padding: 2px 7px;
  border-radius: 4px;
  border: 1px solid transparent;
}
.comm-tag--nivel    { background: rgba(96,165,250,.08);  color: #60a5fa; border-color: rgba(96,165,250,.2); }
.comm-tag--carreira { background: rgba(192,132,252,.08); color: #c084fc; border-color: rgba(192,132,252,.2); }
.comm-tag--disc     { background: var(--panel-3); color: var(--dim); border-color: var(--line); }

/* ── Vote button ── */
.comm-vote-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  background: var(--panel);
  border: 1px solid var(--line-2);
  border-radius: 8px;
  color: var(--muted);
  cursor: pointer;
  padding: 8px 10px;
  min-width: 44px;
  transition: all .15s;
  flex-shrink: 0;
}
.comm-vote-btn:hover:not(:disabled) {
  border-color: #f87171;
  color: #f87171;
}
.comm-vote-btn--voted {
  background: rgba(248,113,113,.1);
  border-color: #f87171;
  color: #f87171;
}
.comm-vote-btn:disabled { opacity: .5; cursor: default; }
.comm-vote-icon { font-size: 14px; line-height: 1; }
.comm-vote-count { font-size: 11px; font-family: 'Geist Mono','JetBrains Mono', monospace; }

/* ── Card footer ── */
.comm-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.comm-card-owner {
  font-size: 11px;
  color: var(--dim);
  font-family: 'Geist Mono','JetBrains Mono', monospace;
}
.comm-card-actions { display: flex; gap: 6px; flex-wrap: wrap; }

/* ── Skeleton ── */
.comm-card-skeleton {
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: 10px;
  height: 140px;
  animation: skeleton-pulse 1.4s ease-in-out infinite;
}
@keyframes skeleton-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .4; }
}

.comm-empty {
  grid-column: 1/-1;
  text-align: center;
  padding: 48px 0;
  color: var(--dim);
  font-size: 13px;
  font-family: 'Geist Mono','JetBrains Mono',monospace;
}

/* ── Load more ── */
.comm-load-more-wrap { text-align: center; margin-top: 18px; }
.comm-load-more-btn {
  background: var(--panel-2);
  border: 1px solid var(--line-2);
  border-radius: 6px;
  color: var(--muted);
  font-size: 12px;
  font-family: 'Geist','Inter',sans-serif;
  padding: 8px 24px;
  cursor: pointer;
  transition: all .15s;
}
.comm-load-more-btn:hover { color: var(--ink); border-color: var(--blue); }

/* ── Modal base ── */
.comm-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.7);
  z-index: 900;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.comm-modal-backdrop.comm-modal--open { display: flex; }

.comm-modal-box {
  background: var(--panel);
  border: 1px solid var(--line-2);
  border-radius: 10px;
  width: 100%;
  max-width: 620px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.comm-modal-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
}
.comm-modal-hdr-title {
  font-size: 12px;
  font-weight: 500;
  color: var(--ink);
  font-family: 'Geist','Inter',sans-serif;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.comm-modal-close {
  background: none;
  border: none;
  color: var(--muted);
  font-size: 18px;
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
  transition: color .15s;
}
.comm-modal-close:hover { color: var(--ink); }

.comm-modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
}

.comm-modal-ftr {
  padding: 12px 16px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0;
}
.comm-modal-already {
  font-size: 12px;
  color: var(--muted);
  font-family: 'Geist Mono','JetBrains Mono',monospace;
  padding: 6px 0;
}
.comm-modal-loading {
  text-align: center;
  padding: 40px;
  color: var(--dim);
  font-size: 13px;
  font-family: 'Geist Mono','JetBrains Mono',monospace;
}

/* ── Preview content ── */
.comm-preview-header { margin-bottom: 20px; }
.comm-preview-nome {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  font-family: 'Geist','Inter',sans-serif;
  margin-bottom: 4px;
}
.comm-preview-meta { font-size: 11px; color: var(--muted); font-family: 'Geist Mono','JetBrains Mono',monospace; margin-bottom: 8px; }
.comm-preview-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.comm-preview-desc {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 10px;
  padding: 10px 12px;
  background: var(--panel-2);
  border-radius: 6px;
  border: 1px solid var(--line);
}
.comm-preview-owner { font-size: 11px; color: var(--dim); font-family: 'Geist Mono','JetBrains Mono',monospace; }

.comm-preview-discs { display: flex; flex-direction: column; gap: 8px; }

.comm-preview-disc {
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}
.comm-preview-disc-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
}
.comm-preview-disc-codigo {
  font-family: 'Geist Mono','JetBrains Mono',monospace;
  font-size: 11px;
  font-weight: 600;
}
.comm-preview-disc-nome { flex: 1; font-size: 12px; font-weight: 500; font-family: 'Geist','Inter',sans-serif; }
.comm-preview-disc-count { font-size: 10px; opacity: .7; font-family: 'Geist Mono','JetBrains Mono',monospace; }

.comm-preview-topicos {
  list-style: none;
  padding: 6px 12px;
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--panel-2);
}
.comm-preview-topicos li {
  font-size: 11px;
  color: var(--muted);
  font-family: 'Geist','Inter',sans-serif;
  padding: 5px 0;
  border-bottom: 1px solid var(--line);
}
.comm-preview-topicos li:last-child { border-bottom: none; }
.comm-preview-more { color: var(--dim); font-style: italic; }

/* ── Modal publicar ── */
.comm-pub-form { display: flex; flex-direction: column; gap: 14px; }
.comm-pub-field { display: flex; flex-direction: column; gap: 5px; }
.comm-pub-label { font-size: 11px; color: var(--muted); font-family: 'Geist Mono','JetBrains Mono',monospace; }
.comm-pub-select {
  background: var(--panel-2);
  border: 1px solid var(--line-2);
  border-radius: 6px;
  color: var(--ink);
  font-size: 12px;
  font-family: 'Geist','Inter',sans-serif;
  padding: 8px 10px;
  outline: none;
  transition: border-color .15s;
}
.comm-pub-select:focus { border-color: var(--blue); }
.comm-pub-desc {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 4px;
}

/* ── Responsive ── */
@media (max-width: 640px) {
  .comm-list { grid-template-columns: 1fr; }
  .comm-card { min-width: 0; overflow: hidden; }
  .comm-card-info { min-width: 0; }
  .comm-card-nome { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .comm-card-meta { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .comm-toolbar { flex-direction: column; align-items: stretch; gap: 8px; }
  .comm-toolbar .tpl-select { width: 100%; }
  .comm-toolbar-sep { display: none; }
  .comm-total { font-size: 10px; }
  .comm-pub-btn { width: 100%; padding: 10px; }
  .comm-card-top { flex-direction: column; gap: 8px; }
  .comm-vote-btn { flex-direction: row; justify-content: center; gap: 6px; width: 100%; padding: 7px 10px; }
  .comm-vote-icon { font-size: 13px; }
  .comm-card-footer { flex-direction: column; align-items: stretch; gap: 8px; }
  .comm-card-actions { width: 100%; }
  .comm-card-actions .gcard-btn { flex: 1; text-align: center; padding: 9px 6px; min-width: 0; }
  .comm-modal-box { max-height: 92vh; }
}
