/* Comments thread (ventas style). Markup from src/js/shared/comment-thread.ts.
   Used by Bitacora and reporte_incidencias; ventas keeps .vn-cm-* with the same numbers. */

.cmt-thread {
  --cmt-neutral-bg: color-mix(in srgb, var(--fg-1) 6%, var(--panel));
  --cmt-neutral-bd: color-mix(in srgb, var(--fg-1) 18%, var(--line));
  --cmt-mine-bg: rgba(255, 255, 255, 0.07);
  --cmt-mine-bd: color-mix(in srgb, var(--fg-1) 40%, var(--line));
  --cmt-bubble-bg: var(--panel);
}

:root[data-theme="light"] .cmt-thread {
  --cmt-neutral-bg: #f3f4f6;
  --cmt-neutral-bd: #d1d5db;
  --cmt-mine-bg: #eef2f8;
  --cmt-mine-bd: #cbd5e1;
  --cmt-bubble-bg: #fff;
}

.cmt-thread .ui-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  background-color: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}

.cmt-day {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 4px 0 0;
  color: var(--fg-2);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.cmt-day::before,
.cmt-day::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--line);
}

.cmt-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  max-width: 90%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

.cmt-item.is-mine {
  align-self: flex-end;
}

.cmt-item.is-pending {
  opacity: .6;
}

.cmt-item.is-system {
  align-self: center;
  max-width: 100%;
}

.cmt-avatar {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  margin-top: 18px;
  border: 1px solid var(--cmt-neutral-bd);
  border-radius: 50%;
  background: var(--cmt-neutral-bg);
  color: var(--fg-1);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .02em;
}

.cmt-body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.cmt-item.is-mine .cmt-body {
  align-items: flex-end;
}

.cmt-item.is-system .cmt-body {
  align-items: center;
}

.cmt-meta {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 0 2px;
  color: var(--fg-2);
  font-size: 11.5px;
  line-height: 1.3;
}

.cmt-meta strong {
  color: var(--fg-1);
  font-weight: 700;
}

.cmt-row {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
}

.cmt-item.is-mine .cmt-row {
  flex-direction: row-reverse;
}

.cmt-bubble {
  display: grid;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--cmt-bubble-bg);
  color: var(--fg-1);
  font-size: 13.5px;
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  box-shadow: none;
}

.cmt-item.is-mine .cmt-bubble {
  border-color: var(--cmt-mine-bd);
  background: var(--cmt-mine-bg);
}

.cmt-item.is-system .cmt-bubble {
  border-style: dashed;
  background: var(--cmt-neutral-bg);
  color: var(--fg-2);
  font-size: 12.5px;
  text-align: center;
}

.cmt-bubble a:not(.comment-file):not(.cg-item) {
  color: var(--fg-1);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cmt-bubble > .gallery-wrap,
.cmt-bubble > .comment-gallery,
.cmt-bubble > .comment-files {
  white-space: normal;
  margin: 0;
}

.cmt-del {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  min-width: 0;
  margin: 4px 0 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--fg-2);
  opacity: 0;
  cursor: pointer;
  box-shadow: none;
  transition: opacity .12s ease, background-color .12s ease, color .12s ease;
}

.cmt-item:hover .cmt-del,
.cmt-item:focus-within .cmt-del,
.cmt-item.show-del .cmt-del {
  opacity: 1;
}

.cmt-del:hover,
.cmt-del:focus-visible {
  border-color: var(--err-bd);
  background: var(--err-bg);
  color: var(--err-fg);
}

@media (hover: none) {
  .cmt-del {
    opacity: 1;
  }
}

.cmt-body > .comment-receipt {
  margin: 0;
  padding: 0 2px;
  border: 0;
  background: none;
  color: var(--fg-2);
  font-size: 11px;
  text-align: right;
}

.cmt-empty {
  display: grid;
  justify-items: center;
  gap: 6px;
  margin: auto;
  padding: 24px 12px;
  color: var(--fg-2);
  text-align: center;
}

.cmt-empty .ui-icon {
  width: 36px;
  height: 36px;
  opacity: .7;
}

.cmt-empty p {
  max-width: 34ch;
  margin: 0;
  font-size: 12.5px;
  line-height: 1.45;
}

/* Compose row (upgradeCommentCompose): tools + auto-growing textarea + icon send button. */
.comments-compose.cmt-compose {
  --cmt-field-bg: var(--bg-0);
  --cmt-hover-bg: color-mix(in srgb, var(--fg-1) 6%, transparent);
  --cmt-hover-bd: color-mix(in srgb, var(--fg-1) 22%, var(--line));
}

:root[data-theme="light"] .comments-compose.cmt-compose {
  --cmt-field-bg: #fff;
}

.comments-compose.cmt-compose {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.comments-compose.cmt-compose .cmt-compose-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: auto;
  grid-template-areas: "tools input send";
  align-items: end;
  gap: 8px;
  width: 100%;
}

.comments-compose.cmt-compose .cmt-compose-row .compose-attach-tools {
  grid-area: tools;
  display: flex;
  align-items: center;
  gap: 2px;
  align-self: end;
}

.comments-compose.cmt-compose .cmt-compose-row .compose-attach-tools[hidden] {
  display: none;
}

.comments-compose.cmt-compose .cmt-compose-row .compose-main {
  grid-area: input;
  min-width: 0;
  width: 100%;
}

.comments-compose.cmt-compose .cmt-compose-row .compose-send {
  grid-area: send;
  display: flex;
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-tool {
  display: grid;
  place-items: center;
  width: 38px;
  min-width: 38px;
  height: 40px;
  min-height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--fg-2);
  box-shadow: none;
  cursor: pointer;
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-tool[hidden] {
  display: none;
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-tool:hover:not(:disabled) {
  border-color: var(--cmt-hover-bd);
  background: var(--cmt-hover-bg);
  color: var(--fg-1);
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-tool .ui-icon,
.comments-compose.cmt-compose .cmt-compose-row .cmt-tool svg,
.comments-compose.cmt-compose .cmt-compose-row .cmt-send svg {
  display: block;
  width: 20px;
  height: 20px;
}

.comments-compose.cmt-compose .ui-icon {
  display: inline-block;
  flex: 0 0 auto;
  background-color: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-input {
  display: block;
  width: 100%;
  min-height: 40px;
  max-height: 160px;
  margin: 0;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--cmt-field-bg);
  color: var(--fg-1);
  font: inherit;
  font-size: 14px;
  line-height: 1.4;
  resize: none;
  overflow-y: auto;
  outline: none;
  box-shadow: none;
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-input:placeholder-shown {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* reporte_incidencias forces a tall min-height on every modal textarea with !important. */
#modal .comments-compose.cmt-compose .cmt-compose-row .cmt-input {
  min-height: 40px !important;
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent);
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-send {
  display: grid;
  place-items: center;
  width: 42px;
  min-width: 42px;
  height: 40px;
  min-height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--accent) 70%, #000);
  border-radius: 10px;
  background: var(--accent);
  color: #111;
  box-shadow: none;
  cursor: pointer;
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-send:hover:not(:disabled) {
  background: color-mix(in srgb, var(--accent) 88%, #000);
}

.comments-compose.cmt-compose .cmt-compose-row .cmt-tool:disabled,
.comments-compose.cmt-compose .cmt-compose-row .cmt-send:disabled,
.comments-compose.cmt-compose .cmt-compose-row .cmt-input:disabled {
  opacity: .45;
  cursor: default;
}

/* Pending attachments above the compose row: 64px tiles. */
.attach-previews.cmt-pending {
  margin: 8px 0 0;
  padding: 0;
}

.attach-previews.cmt-pending .comment-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: none;
  margin: 0;
  grid-template-columns: none;
}

.attach-previews.cmt-pending .comment-gallery > a {
  position: relative;
  display: grid;
  place-items: center;
  align-content: center;
  width: 64px;
  height: 64px;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg-0);
  aspect-ratio: auto;
}

.attach-previews.cmt-pending .comment-gallery > a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.attach-previews.cmt-pending .comment-gallery > a .cg-video-thumb {
  width: 100%;
  height: 100%;
}

.attach-previews.cmt-pending .cg-file .cg-file-ic {
  font-size: 10px;
  font-weight: 800;
  color: var(--fg-2);
}

.attach-previews.cmt-pending .cg-file .cg-file-name {
  max-width: 58px;
  overflow: hidden;
  color: var(--fg-2);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.attach-previews.cmt-pending .cg-file .cg-file-meta {
  display: none;
}

.attach-previews.cmt-pending .hkmod-del {
  position: absolute;
  z-index: 2;
  top: 3px;
  right: 3px;
  display: grid;
  place-items: center;
  width: 20px;
  min-width: 0;
  height: 20px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 6px;
  background: rgba(15, 23, 42, .78);
  color: transparent;
  font-size: 0;
  box-shadow: none;
  cursor: pointer;
}

.attach-previews.cmt-pending .hkmod-del::before {
  content: "";
  width: 12px;
  height: 12px;
  background-color: #fff;
  -webkit-mask: url(/assets/icons/icon-x.png) center / contain no-repeat;
  mask: url(/assets/icons/icon-x.png) center / contain no-repeat;
}

.attach-previews.cmt-pending .hkmod-del::after {
  content: none;
}

@media (max-width: 900px) {
  .cmt-item {
    max-width: 94%;
  }
}

@media (max-width: 520px) {
  .comments-compose.cmt-compose .cmt-compose-row .cmt-input {
    font-size: 16px;
  }
}
