/* =========================================
   KELIBATMU V2 - COMPACT SOCIAL COMPOSER
   Familiar mobile-first composer pattern.
========================================= */

.kv2-composer {
  width: 100%;
  margin-bottom: 1rem;
  padding: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
}

.kv2-composer__trigger {
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 0 0.95rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.22);
  color: rgba(255, 255, 255, 0.58);
  font: inherit;
  font-size: var(--kv2-font-small, 0.95rem);
  text-align: left;
  cursor: text;
}

.kv2-composer__trigger:hover,
.kv2-composer__trigger:focus-visible {
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.78);
  outline: none;
}

.kv2-composer__body {
  display: grid;
  gap: 0.75rem;
}

.kv2-composer[data-kv2-enhanced="true"]:not(.kv2-composer--open) .kv2-composer__body {
  display: none;
}

.kv2-composer[data-kv2-enhanced="true"].kv2-composer--open .kv2-composer__trigger {
  display: none;
}

.kv2-composer__textarea {
  width: 100%;
  min-height: 42px;
  padding: 0.85rem 0.95rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  outline: none;
  resize: vertical;
  background: rgba(0, 0, 0, 0.24);
  color: var(--color-text-primary, rgba(255, 255, 255, 0.92));
  font: inherit;
  font-size: var(--kv2-font-body, 1rem);
  line-height: var(--kv2-line-body, 1.5);
  transition: min-height 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.kv2-comment-composer--active .kv2-composer__textarea,
.kv2-comment-composer--has-text .kv2-composer__textarea {
  min-height: 72px;
}

.kv2-composer__textarea:focus {
  border-color: rgba(212, 175, 55, 0.48);
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.1);
}

.kv2-composer__actions {
  display: none;
  justify-content: flex-end;
  gap: 0.55rem;
}

.kv2-comment-composer--active .kv2-composer__actions,
.kv2-comment-composer--has-text .kv2-composer__actions {
  display: flex;
}

[data-kv2-reply-form][hidden] {
  display: none !important;
}

.kv2-facebook-composer {
  position: sticky;
  bottom: 0;
  z-index: 12;
  display: grid;
  gap: 6px;
  margin: 14px -2px 0;
  padding: 8px 6px max(8px, env(safe-area-inset-bottom));
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(8, 15, 13, 0.94);
  backdrop-filter: blur(16px);
}

.kv2-facebook-composer__reply-context {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 22px;
  padding: 0 8px;
  color: rgba(235, 244, 235, 0.78);
  font-size: var(--kv2-font-caption, 0.82rem);
}

.kv2-facebook-composer__reply-context[hidden] {
  display: none;
}

.kv2-facebook-composer__reply-context strong {
  color: rgba(247, 252, 247, 0.96);
}

.kv2-facebook-composer__reply-context button {
  border: 0;
  padding: 0;
  color: #a9e6a0;
  background: transparent;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.kv2-facebook-composer__bar {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 38px;
  gap: 8px;
  align-items: end;
}

.kv2-facebook-composer textarea {
  width: 100%;
  height: 44px !important;
  max-height: 120px;
  min-height: 44px !important;
  border: 0;
  border-radius: 999px;
  padding: 11px 14px;
  color: rgba(244, 251, 244, 0.96);
  background: rgba(255, 255, 255, 0.095);
  font: inherit;
  line-height: 1.35;
  resize: none;
  overflow: hidden;
}

.kv2-facebook-composer.kv2-comment-composer--active textarea,
.kv2-facebook-composer.kv2-comment-composer--has-text textarea {
  border-radius: 18px;
}

.kv2-facebook-composer textarea:focus {
  outline: 2px solid rgba(137, 205, 139, 0.28);
  outline-offset: 0;
}

.kv2-facebook-composer__send {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 999px;
  color: #06140e;
  background: linear-gradient(135deg, #a9e6a0, #5ebd72);
  font-size: 1rem;
  font-weight: 900;
  cursor: pointer;
}

.kv2-facebook-composer__send:disabled {
  color: rgba(225, 238, 225, 0.34);
  background: rgba(255, 255, 255, 0.08);
  cursor: default;
}

.kv2-facebook-composer__send-label {
  display: none;
}

.kv2-composer__cancel,
.kv2-composer__submit {
  min-height: 38px;
  padding: 0 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  font: inherit;
  font-size: var(--kv2-font-button, 0.9rem);
  font-weight: 700;
  cursor: pointer;
}

.kv2-composer__cancel {
  background: rgba(255, 255, 255, 0.055);
  color: rgba(255, 255, 255, 0.76);
}

.kv2-composer__submit {
  border-color: rgba(212, 175, 55, 0.36);
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.95), rgba(147, 109, 28, 0.95));
  color: #0b0b0d;
}

.kv2-composer__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
}

.kv2-composer__input {
  flex: 1 1 150px;
  min-height: 38px;
  padding: 0 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.2);
  color: var(--color-text-primary, rgba(255, 255, 255, 0.92));
  font: inherit;
  font-size: var(--kv2-font-small, 0.95rem);
}

.kv2-composer__check {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: rgba(255, 255, 255, 0.62);
  font-size: var(--kv2-font-caption, 0.82rem);
}

.kv2-composer__check input {
  accent-color: rgba(212, 175, 55, 0.9);
}

@media (max-width: 560px) {
  .kv2-composer {
    padding: 0.65rem;
    border-radius: 14px;
  }

  .kv2-composer__actions {
    justify-content: stretch;
  }

  .kv2-composer__cancel,
  .kv2-composer__submit {
    flex: 1;
  }
}

/* ============================================
   COMMENT V2 — ONE SHARED VISUAL CONTRACT
   ============================================
   Applies to the three comment families that adopt Comment V2:
     Status  -> .kv2-profile-status-comment-form.kv2-facebook-composer
     Song    -> .kv2-song-comments__composer.kv2-facebook-composer
     Blog    -> .blog-comment-form-wrapper.kv2-facebook-composer

   Each composer keeps its own root class so the combined specificity stays at
   (0,2,0). A single low-specificity `.kv2-facebook-composer` selector would
   lose to the surface pill rules and the REJECTED green emoji chips would come
   back, so the explicit three-way list is deliberate.

   The controls are lightweight inserts, not calls to action: flat, no
   background, no border, no shadow, one non-wrapping row, compact Send.
   This file is loaded by base.html so the contract reaches every surface.
*/
.kv2-profile-status-comment-form.kv2-facebook-composer .kv2-facebook-composer__extras,
.kv2-song-comments__composer.kv2-facebook-composer .kv2-facebook-composer__extras,
.blog-comment-form-wrapper.kv2-facebook-composer .kv2-facebook-composer__extras {
  display: none;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
}

/* Comment V2 idle -> active reveal.
   Status uses the shared class toggled by JS and must NOT expand on bare focus;
   Song has no shared class toggle so it reveals on focus within its own surface;
   Blog is revealed by compact-composer.js adding `kv2-composer--open`. */
.kv2-facebook-composer.kv2-comment-composer--active .kv2-facebook-composer__extras,
.kv2-facebook-composer.kv2-comment-composer--has-text .kv2-facebook-composer__extras,
.kv2-song-comments__composer.kv2-facebook-composer:focus-within .kv2-facebook-composer__extras,
.blog-comment-form-wrapper.kv2-facebook-composer.kv2-composer--open .kv2-facebook-composer__extras {
  display: flex;
}

.kv2-facebook-composer .kv2-facebook-composer__extras[hidden] {
  display: none !important;
}

/* Comment V2 Send visibility. Idle hides Send on every surface; the active
   state reveals it. Status already carries an identical pair of rules in
   comment-v2-inline.css, which only loads on Status surfaces — this file is
   global so Blog and Song inherit the same contract. */
.kv2-facebook-composer .kv2-facebook-composer__send {
  display: none;
}

.kv2-facebook-composer.kv2-comment-composer--active .kv2-facebook-composer__send,
.kv2-facebook-composer.kv2-comment-composer--has-text .kv2-facebook-composer__send,
.kv2-song-comments__composer.kv2-facebook-composer:focus-within .kv2-facebook-composer__send,
.blog-comment-form-wrapper.kv2-facebook-composer.kv2-composer--open .kv2-facebook-composer__send {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.kv2-profile-status-comment-form.kv2-facebook-composer .kv2-facebook-composer__emoji-row,
.kv2-song-comments__composer.kv2-facebook-composer .kv2-facebook-composer__emoji-row,
.blog-comment-form-wrapper.kv2-facebook-composer .kv2-facebook-composer__emoji-row {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  min-width: 0;
  gap: 0;
}

.kv2-profile-status-comment-form.kv2-facebook-composer .kv2-facebook-composer__emoji,
.kv2-profile-status-comment-form.kv2-facebook-composer .kv2-facebook-composer__mention,
.kv2-song-comments__composer.kv2-facebook-composer .kv2-facebook-composer__emoji,
.kv2-song-comments__composer.kv2-facebook-composer .kv2-facebook-composer__mention,
.blog-comment-form-wrapper.kv2-facebook-composer .kv2-facebook-composer__emoji,
.blog-comment-form-wrapper.kv2-facebook-composer .kv2-facebook-composer__mention {
  flex: 0 0 auto;
  min-width: 30px;
  min-height: 30px;
  border: 0;
  border-radius: 8px;
  padding: 0 2px;
  color: rgba(233, 243, 233, 0.82);
  background: none;
  box-shadow: none;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
}

.kv2-profile-status-comment-form.kv2-facebook-composer .kv2-facebook-composer__emoji:hover,
.kv2-profile-status-comment-form.kv2-facebook-composer .kv2-facebook-composer__mention:hover,
.kv2-song-comments__composer.kv2-facebook-composer .kv2-facebook-composer__emoji:hover,
.kv2-song-comments__composer.kv2-facebook-composer .kv2-facebook-composer__mention:hover,
.blog-comment-form-wrapper.kv2-facebook-composer .kv2-facebook-composer__emoji:hover,
.blog-comment-form-wrapper.kv2-facebook-composer .kv2-facebook-composer__mention:hover {
  background: rgba(255, 255, 255, 0.08);
}

.kv2-profile-status-comment-form.kv2-facebook-composer .kv2-facebook-composer__mention,
.kv2-song-comments__composer.kv2-facebook-composer .kv2-facebook-composer__mention,
.blog-comment-form-wrapper.kv2-facebook-composer .kv2-facebook-composer__mention {
  font-size: 15px;
  font-weight: 700;
}

.kv2-profile-status-comment-form.kv2-facebook-composer .kv2-facebook-composer__send,
.kv2-song-comments__composer.kv2-facebook-composer .kv2-facebook-composer__send,
.blog-comment-form-wrapper.kv2-facebook-composer .kv2-facebook-composer__send {
  /* No `display` here on purpose: the idle/hidden contract is owned by
     comment-v2-inline.css (idle = none, active = inline-flex). Setting it here
     would out-specify that rule and leave Send visible while idle. */
  flex: 0 0 auto;
  place-items: center;
  width: 34px;
  height: 34px;
  min-width: 34px;
  min-height: 34px;
  padding: 0;
  border: 1px solid rgba(155, 214, 151, 0.32);
  border-radius: 999px;
  box-shadow: 0 3px 10px rgba(62, 142, 82, 0.18);
  font-size: 0.86rem;
}

.kv2-profile-status-comment-form.kv2-facebook-composer .kv2-facebook-composer__send:disabled,
.kv2-song-comments__composer.kv2-facebook-composer .kv2-facebook-composer__send:disabled,
.blog-comment-form-wrapper.kv2-facebook-composer .kv2-facebook-composer__send:disabled {
  border-color: transparent;
  background: rgba(255, 255, 255, 0.07);
  box-shadow: none;
}

/* A hidden comment is excluded from the normal public reads on every surface;
   the shared badge keeps a moderator's view unambiguous. */
.kv2-comment-hidden-badge,
.kv2-song-comments__hidden-badge,
.blog-comment-hidden-badge {
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  padding: 1px 7px;
  color: rgba(233, 243, 233, 0.72);
  background: rgba(255, 255, 255, 0.06);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
/* Shared minimal text-entry focus. Specificity deliberately beats the system
   theme's generic input/textarea focus without changing auth fields or controls. */
:root .kv2-search :is(.kv2-search__input, .kv2-eisya__textarea) {
  background: transparent;
  border: 0;
  box-shadow: none;
}
:is(.kv2-search .kv2-search__input,
    .kv2-search .kv2-eisya__textarea,
    .kv2-status-comment-section .kv2-profile-status-comment-form.kv2-facebook-composer textarea):focus {
  outline: none;
  outline-offset: 0;
  box-shadow: none;
  border-color: transparent;
}
:root .kv2-search .kv2-search__input:focus {
  background: transparent;
  color: color-mix(in srgb, var(--kv2-search-ink) 72%, var(--kv2-search-muted) 28%);
}
:root .kv2-search .kv2-eisya__textarea:focus { background: transparent; }
:root .kv2-search :is(.kv2-search__header, .kv2-eisya__composer):focus-within {
  border-color: color-mix(in srgb, var(--kv2-search-muted) 32%, transparent);
}
.kv2-status-comment-section .kv2-profile-status-comment-form.kv2-facebook-composer textarea:focus {
  background: color-mix(in srgb, var(--color-text-secondary, #aeb5ae) 12%, transparent);
}
