/* I Will Pass NCLEX — Phase 7: discussion boards, peer questions, study groups, private messages, moderation. */
.cm-bar { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.cm-search { display: flex; gap: 0.4rem; flex: 1 1 18rem; max-width: 28rem; }
.cm-links { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; font-weight: 600; font-size: 0.925rem; }
.cm-links a { text-decoration: none; color: var(--ink); padding: 0.35rem 0; }
.cm-links a[aria-current] { color: var(--teal-dark); text-decoration: underline; text-underline-offset: 4px; }
.cm-sort { display: flex; flex-wrap: wrap; gap: 0.3rem; }

.cm-topics { list-style: none; padding: 0; margin: 0; }
.cm-topic { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; justify-content: space-between; padding: 0.85rem 0; border-top: 1px solid var(--line); }
.cm-topic:first-child { border-top: 0; padding-top: 0.25rem; }
.cm-topic-main { flex: 1 1 18rem; min-width: 0; }
.cm-topic-title { font-weight: 700; font-size: 1.02rem; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.cm-topic-title:hover, .cm-topic-title:focus { text-decoration: underline; }
.cm-meta { font-size: 0.85rem; color: var(--muted); margin-top: 0.15rem; }
.cm-topic-stats { display: flex; flex-wrap: wrap; gap: 0.25rem 0.9rem; align-items: center; font-size: 0.85rem; color: var(--muted); }
.cm-last { flex-basis: 100%; text-align: right; font-size: 0.8rem; }
.cm-flags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.3rem; }
.badge.cm-pin { background: var(--marker-soft); color: #6B5200; }
.badge.cm-solved { background: var(--ok-soft); color: #0F5E3F; }
.badge.cm-q { background: var(--mist); color: var(--teal-dark); }
.badge.cm-team { background: var(--ink); color: #fff; }
.badge.cm-mod { background: var(--mist); color: var(--teal-dark); border: 1px solid #A8CBD2; }
.badge.cm-reason { background: var(--bad-soft); color: #8A1F1F; font-weight: 600; }
.cm-name { font-weight: 600; color: var(--ink); }

.cm-cats { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.25rem; }
.cm-cats a { display: flex; gap: 0.7rem; align-items: center; padding: 0.55rem 0.6rem; border-radius: 10px; text-decoration: none; color: var(--ink); }
.cm-cats a:hover, .cm-cats a[aria-current] { background: var(--mist); }
.cm-cat-ico { width: 2.1rem; height: 2.1rem; border-radius: 9px; display: grid; place-items: center; background: var(--paper); border: 1px solid var(--line); color: var(--teal-dark); flex: none; }

.cm-h1 { overflow-wrap: anywhere; }
.cm-post-head { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; margin-bottom: 0.5rem; }
.cm-body { font-family: var(--font-read); font-size: 1.05rem; line-height: 1.6; overflow-wrap: anywhere; }
.cm-body p:last-child { margin-bottom: 0; }
.cm-post.is-best { border-color: var(--ok); box-shadow: inset 4px 0 0 var(--ok); }
.cm-post.is-hidden, .cm-resources li.is-hidden { opacity: 0.75; background: repeating-linear-gradient(-45deg, #fff, #fff 10px, #FAFAF5 10px, #FAFAF5 20px); }
.cm-best { border-color: var(--ok); background: var(--ok-soft); }
.cm-post-tools { display: flex; flex-wrap: wrap; gap: 0.5rem 0.9rem; align-items: center; margin-top: 0.75rem; font-size: 0.875rem; }
.cm-like, .cm-tool { border: 0; background: none; padding: 0.35rem 0.1rem; min-height: 36px; color: var(--muted); font-weight: 600; display: inline-flex; gap: 0.35rem; align-items: center; }
.cm-like:hover, .cm-tool:hover { color: var(--ink); }
.cm-like[aria-pressed="true"] { color: var(--bad); }
.cm-like.is-static { cursor: default; }
.cm-edit, .cm-report { display: inline-block; }
.cm-edit > summary, .cm-report > summary { cursor: pointer; color: var(--muted); font-weight: 600; list-style: none; padding: 0.35rem 0.1rem; min-height: 36px; display: inline-flex; gap: 0.35rem; align-items: center; }
.cm-edit > summary::-webkit-details-marker, .cm-report > summary::-webkit-details-marker { display: none; }
.cm-edit[open], .cm-report[open] { display: block; width: 100%; }
.cm-edit form, .cm-report-form { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 0.75rem; margin-top: 0.35rem; max-width: 36rem; }
.cm-mod-tools { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px dashed var(--line); }
.cm-qpanel { position: sticky; top: 1rem; }
.cm-question .q-text { font-family: var(--font-read); }
.cm-rules li { margin-bottom: 0.5rem; }
.cm-narrow { max-width: 44rem; }
.cm-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; text-align: center; }
.cm-stats strong { display: block; font-family: var(--font-display); font-size: 1.6rem; }
.cm-stats span { font-size: 0.85rem; color: var(--muted); }

.cm-tabs { display: flex; flex-wrap: wrap; gap: 0.35rem; border-bottom: 1px solid var(--line); }
.cm-tabs a { padding: 0.55rem 0.85rem; text-decoration: none; color: var(--muted); font-weight: 600; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.cm-tabs a:hover { color: var(--ink); }
.cm-tabs a[aria-current] { color: var(--ink); border-bottom-color: var(--teal); }
.cm-group-card { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 1rem 1.1rem; color: var(--ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.cm-group-card:hover, .cm-group-card:focus { border-color: var(--teal); box-shadow: 0 4px 14px rgba(20, 33, 61, 0.08); }
.cm-group-name { font-size: 1.05rem; overflow-wrap: anywhere; }
.cm-next { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; background: var(--marker-soft); border: 1px solid #F0D98A; border-radius: 12px; padding: 0.65rem 0.9rem; }
.cm-members, .cm-sessions, .cm-resources, .cm-threads { list-style: none; padding: 0; margin: 0; }
.cm-members li, .cm-sessions li, .cm-resources li { padding: 0.7rem 0; border-top: 1px solid var(--line); }
.cm-members li:first-child, .cm-sessions li:first-child, .cm-resources li:first-child { border-top: 0; padding-top: 0; }
.cm-code { font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing: 0.12em; font-size: 1.15rem; }

.cm-threads li a { display: block; padding: 0.7rem 0.6rem; border-radius: 10px; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); }
.cm-threads li a:hover { background: var(--mist); }
.cm-threads li a.is-unread { background: #F1F8F9; }
.cm-excerpt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-contact { display: inline-flex; gap: 0.5rem; align-items: center; text-decoration: none; }
.cm-msgs { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-direction: column; gap: 0.6rem; }
.cm-msg { max-width: min(85%, 36rem); }
.cm-msg.is-mine { align-self: flex-end; text-align: right; }
.cm-bubble { display: inline-block; text-align: left; padding: 0.6rem 0.85rem; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); overflow-wrap: anywhere; }
.cm-bubble p:last-child { margin-bottom: 0; }
.cm-msg.is-mine .cm-bubble { background: var(--ink); color: #fff; border-color: var(--ink); }
.cm-msg-meta { font-size: 0.78rem; color: var(--muted); margin-top: 0.15rem; }
.cm-send { display: flex; gap: 0.5rem; align-items: flex-end; }
.cm-send textarea { flex: 1; }

.cm-quote { border-left: 4px solid var(--line); padding: 0.25rem 0 0.25rem 0.85rem; margin: 0 0 0.75rem; max-height: 16rem; overflow: auto; }
.cm-context { border: 1px solid var(--line); border-radius: 10px; padding: 0.5rem 0.75rem; margin-bottom: 0.5rem; background: var(--paper); }
.cm-ctx { padding: 0.35rem 0; border-top: 1px solid var(--line); }
.cm-ctx:first-child { border-top: 0; }
.cm-ctx.is-target { background: var(--bad-soft); margin: 0 -0.75rem; padding: 0.35rem 0.75rem; }
.cm-ctx p { margin-bottom: 0; }

@media (max-width: 575.98px) {
  .cm-last { text-align: left; }
  .cm-send { flex-direction: column; align-items: stretch; }
  .cm-qpanel { position: static; }
}
