/* Поддержка K2 — плавающий виджет онлайн-чата (.k2-chat): FAB + панель.
   Палитра задана на самом .k2-chat, селекторы префиксованы — стили НЕ протекают
   в app.css на страницах тенанта. Виджет инжектится глобально (_footer.ejs,
   layoutShell==='tenant') и в публичном контексте (лендинг/логин).
   Порт палитры/компонентов из amk-platform/site/support.html.
   (Стендалон-тема body.k2-support удалена: /support теперь в общем app-shell.) */

/* ============================================================
   ПЛАВАЮЩИЙ ВИДЖЕТ ЧАТА (.k2-chat) — палитра self-contained
   ============================================================ */
.k2-chat {
  --kc-bg: #0B1628;
  --kc-bg-elev: #112040;
  --kc-accent: #1D9E75;
  --kc-accent-soft: #5DCAA5;
  --kc-text: #ffffff;
  --kc-text-mute: #8899AA;
  --kc-text-dim: #5d6b80;
  --kc-border: rgba(255, 255, 255, 0.10);
  --kc-border-strong: rgba(255, 255, 255, 0.16);
  --kc-danger: #ff5d6c;
  --kc-warn: #f5a524;
  font-family: 'DM Sans', system-ui, sans-serif;
}
.k2-chat *, .k2-chat *::before, .k2-chat *::after { box-sizing: border-box; }

.k2-chat__fab {
  position: fixed; bottom: max(24px, env(safe-area-inset-bottom, 0px));
  right: max(24px, env(safe-area-inset-right, 0px)); z-index: 1000;
  width: 56px; height: 56px; border: none; border-radius: 16px;
  background: var(--kc-accent); color: #06241B; cursor: pointer;
  display: grid; place-items: center;
  box-shadow: 0 8px 32px rgba(29, 158, 117, 0.4);
  transition: transform 0.2s; animation: k2ChatPulse 2.5s infinite;
  -webkit-tap-highlight-color: transparent;
}
@keyframes k2ChatPulse {
  0%, 100% { box-shadow: 0 8px 32px rgba(29, 158, 117, 0.4), 0 0 0 0 rgba(29, 158, 117, 0.5); }
  50% { box-shadow: 0 8px 32px rgba(29, 158, 117, 0.4), 0 0 0 12px rgba(29, 158, 117, 0); }
}
.k2-chat__fab:hover { transform: scale(1.05); }
.k2-chat__fab[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .k2-chat__fab { animation: none; } }

.k2-chat__panel {
  position: fixed; bottom: max(24px, env(safe-area-inset-bottom, 0px));
  right: max(24px, env(safe-area-inset-right, 0px)); z-index: 1001;
  width: 360px; max-width: calc(100vw - 24px); height: 520px;
  max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px);
  background: var(--kc-bg-elev); border: 1px solid var(--kc-border-strong);
  border-radius: 18px; box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  display: flex; flex-direction: column; color: var(--kc-text);
  transform: translateY(20px) scale(0.96); opacity: 0; pointer-events: none;
  transition: all 0.2s;
}
.k2-chat__panel.open { transform: translateY(0) scale(1); opacity: 1; pointer-events: auto; }

.k2-chat__head { padding: 16px 18px; border-bottom: 1px solid var(--kc-border); display: flex; align-items: center; gap: 12px; }
.k2-chat__ava {
  width: 36px; height: 36px; border-radius: 10px;
  background: linear-gradient(135deg, var(--kc-accent), var(--kc-accent-soft));
  color: #06241B; display: grid; place-items: center;
  font-family: 'Unbounded', sans-serif; font-weight: 700; font-size: 12px; flex-shrink: 0;
}
.k2-chat__agent-name { font-size: 13px; font-weight: 600; }
.k2-chat__agent-status { font-size: 11px; color: var(--kc-accent-soft); display: flex; align-items: center; gap: 6px; }
.k2-chat__led { width: 6px; height: 6px; border-radius: 50%; background: var(--kc-accent); display: inline-block; }
.k2-chat__close { margin-left: auto; color: var(--kc-text-mute); background: none; border: none; cursor: pointer; padding: 4px; display: grid; place-items: center; }
.k2-chat__close:hover { color: var(--kc-text); }

.k2-chat__body { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.k2-chat__msg { max-width: 85%; padding: 10px 14px; border-radius: 14px; font-size: 13px; line-height: 1.45; white-space: pre-wrap; word-wrap: break-word; }
.k2-chat__msg--bot, .k2-chat__msg--operator { align-self: flex-start; background: rgba(255, 255, 255, 0.05); border-top-left-radius: 4px; }
.k2-chat__msg--operator { border-left: 2px solid var(--kc-accent-soft); }
.k2-chat__msg--guest { align-self: flex-end; background: var(--kc-accent); color: #06241B; border-top-right-radius: 4px; font-weight: 500; }

.k2-chat__escalation {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px; align-self: stretch;
  background: rgba(245, 165, 36, 0.12); border: 1px solid rgba(245, 165, 36, 0.35);
  border-radius: 10px; color: var(--kc-warn); font-size: 12px; line-height: 1.4;
}

/* intro-экран (имя + телефон), рендерится JS для публичного контекста */
.k2-chat__intro { display: flex; flex-direction: column; gap: 12px; }
.k2-chat__intro-form { display: flex; flex-direction: column; gap: 10px; }
.k2-chat__intro-field { display: flex; flex-direction: column; gap: 4px; }
.k2-chat__intro-field > span { font-size: 11px; color: var(--kc-text-mute); font-weight: 500; }
.k2-chat__intro-field input {
  background: rgba(0, 0, 0, 0.25); border: 1px solid var(--kc-border); border-radius: 10px;
  padding: 10px 12px; color: var(--kc-text); font: inherit; font-size: 13px;
}
.k2-chat__intro-field input:focus { outline: none; border-color: var(--kc-accent); background: rgba(29, 158, 117, 0.05); }
.k2-chat__intro-field .k2-chat__phone-wrap { position: relative; }
.k2-chat__intro-field .k2-chat__phone-wrap input { font-family: 'JetBrains Mono', monospace; }
.k2-chat__intro-submit {
  background: var(--kc-accent); color: #06241B; border: none; padding: 11px 14px;
  border-radius: 10px; font-weight: 700; font-size: 13px; cursor: pointer; font-family: inherit;
  transition: background 0.15s, opacity 0.15s;
}
.k2-chat__intro-submit:hover:not(:disabled) { background: var(--kc-accent-soft); }
.k2-chat__intro-submit:disabled { opacity: 0.5; cursor: not-allowed; }
.k2-chat__intro-error { font-size: 12px; color: var(--kc-danger); }

.k2-chat__input { padding: 12px; border-top: 1px solid var(--kc-border); display: flex; gap: 8px; align-items: center; }
.k2-chat__msg-input {
  flex: 1; background: rgba(0, 0, 0, 0.25); border: 1px solid var(--kc-border);
  border-radius: 10px; padding: 10px 12px; font-size: 13px; color: var(--kc-text); font-family: inherit;
}
.k2-chat__input input.k2-chat__msg {
  flex: 1; background: rgba(0, 0, 0, 0.25); border: 1px solid var(--kc-border);
  border-radius: 10px; padding: 10px 12px; font-size: 13px; color: var(--kc-text); font-family: inherit;
  max-width: none;
}
.k2-chat__input input.k2-chat__msg:focus { outline: none; border-color: var(--kc-accent); }
.k2-chat__input input.k2-chat__msg:disabled { opacity: 0.5; cursor: not-allowed; }
.k2-chat__send {
  width: 36px; height: 36px; flex-shrink: 0; border: none; border-radius: 10px;
  background: var(--kc-accent); color: #06241B; cursor: pointer; display: grid; place-items: center;
}
.k2-chat__send:disabled { opacity: 0.4; cursor: not-allowed; }

/* honeypot — невидим для людей, доступен ботам */
.k2-chat__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

@media (pointer: coarse) {
  .k2-chat__input input.k2-chat__msg, .k2-chat__intro-field input { font-size: 16px; }
}
@media (max-width: 640px) {
  .k2-chat__panel {
    left: max(8px, env(safe-area-inset-left, 0px)); right: max(8px, env(safe-area-inset-right, 0px));
    width: auto; max-width: none; bottom: max(12px, env(safe-area-inset-bottom, 0px));
    height: min(70vh, calc(100vh - 100px)); height: min(70dvh, calc(100dvh - 100px));
  }
  .k2-chat__fab { bottom: max(16px, env(safe-area-inset-bottom, 0px)); right: max(16px, env(safe-area-inset-right, 0px)); }
  .k2-chat__input input.k2-chat__msg { font-size: 16px; }
  .k2-chat__send { width: 44px; height: 44px; }
}

/* ============================================================
   ФОРМА ЗАЯВКИ (.k2-ticket-form) — порт дизайна amk support.html.
   Палитра self-contained на корне; все классы префиксованы tf- и
   ограничены потомками .k2-ticket-form, чтобы НЕ протекать в app.css
   (например, .field/.input/.step из app.css не задеваются).
   ============================================================ */
.k2-ticket-form {
  --tf-bg-elev: #112040;
  --tf-bg-elev-2: #182852;
  --tf-accent: #1D9E75;
  --tf-accent-soft: #5DCAA5;
  --tf-accent-glow: rgba(29, 158, 117, 0.18);
  --tf-text: #ffffff;
  --tf-text-mute: #8899AA;
  --tf-text-dim: #5d6b80;
  --tf-border: rgba(255, 255, 255, 0.08);
  --tf-border-strong: rgba(255, 255, 255, 0.14);
  --tf-danger: #ff5d6c;
  --tf-radius-sm: 10px;

  background: var(--tf-bg-elev);
  border: 1px solid var(--tf-border);
  border-radius: 20px;
  color: var(--tf-text);
  font-family: 'DM Sans', system-ui, sans-serif;
  overflow: visible;
  isolation: isolate;
}
.k2-ticket-form *, .k2-ticket-form *::before, .k2-ticket-form *::after { box-sizing: border-box; }
.k2-ticket-form button { font: inherit; color: inherit; cursor: pointer; border: none; background: none; }
.k2-ticket-form input, .k2-ticket-form textarea { font: inherit; color: inherit; }

.k2-ticket-form .tf-header { padding: 22px 26px; border-bottom: 1px solid var(--tf-border); }
.k2-ticket-form .tf-title { font-family: 'Unbounded', 'DM Sans', sans-serif; font-size: 15px; font-weight: 700; letter-spacing: 0.02em; }
.k2-ticket-form .tf-subtitle { font-size: 12px; color: var(--tf-text-mute); margin-top: 4px; }

.k2-ticket-form .tf-stepper { display: flex; padding: 0 26px; gap: 4px; border-bottom: 1px solid var(--tf-border); }
.k2-ticket-form .tf-step { padding: 14px 0; flex: 1; font-size: 11px; color: var(--tf-text-dim); display: flex; align-items: center; gap: 8px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; border-bottom: 2px solid transparent; transition: all 0.2s; }
.k2-ticket-form .tf-step.active { color: var(--tf-text); border-bottom-color: var(--tf-accent); }
.k2-ticket-form .tf-step.done { color: var(--tf-accent-soft); }
.k2-ticket-form .tf-step-num { width: 18px; height: 18px; border-radius: 50%; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--tf-border); display: grid; place-items: center; font-size: 10px; font-family: 'JetBrains Mono', monospace; }
.k2-ticket-form .tf-step.active .tf-step-num { background: var(--tf-accent); color: #06241B; border-color: var(--tf-accent); }
.k2-ticket-form .tf-step.done .tf-step-num { background: rgba(29, 158, 117, 0.15); color: var(--tf-accent-soft); border-color: rgba(29, 158, 117, 0.3); }

.k2-ticket-form .tf-body { padding: 26px; }
.k2-ticket-form .tf-section-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--tf-text-dim); display: flex; align-items: center; gap: 10px; margin: 22px 0 14px; }
.k2-ticket-form .tf-section-label:first-child { margin-top: 0; }
.k2-ticket-form .tf-section-label::after { content: ''; flex: 1; height: 1px; background: var(--tf-border); }
.k2-ticket-form .tf-section-note { text-transform: none; letter-spacing: 0; color: var(--tf-text-dim); font-family: 'DM Sans', sans-serif; }

.k2-ticket-form .tf-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.k2-ticket-form .tf-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.k2-ticket-form .tf-field--full { grid-column: 1 / -1; }
.k2-ticket-form label { font-size: 12px; font-weight: 500; color: var(--tf-text-mute); display: flex; align-items: center; gap: 6px; }
.k2-ticket-form .tf-req { color: var(--tf-accent); }
.k2-ticket-form .tf-hint { color: var(--tf-text-dim); font-weight: 400; margin-left: auto; font-family: 'JetBrains Mono', monospace; font-size: 10px; }

.k2-ticket-form .tf-input,
.k2-ticket-form .tf-textarea,
.k2-ticket-form .tf-select-trigger {
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid var(--tf-border);
  border-radius: var(--tf-radius-sm);
  padding: 12px 14px;
  color: var(--tf-text);
  font-size: 14px;
  width: 100%;
  font-family: inherit;
  transition: border-color 0.15s, background 0.15s;
}
.k2-ticket-form .tf-input:focus,
.k2-ticket-form .tf-textarea:focus,
.k2-ticket-form .tf-select-trigger:focus,
.k2-ticket-form .tf-select-trigger.open {
  outline: none; border-color: var(--tf-accent); background: rgba(29, 158, 117, 0.05);
}
.k2-ticket-form .tf-input::placeholder, .k2-ticket-form .tf-textarea::placeholder { color: var(--tf-text-dim); }
.k2-ticket-form .tf-input[readonly] { color: var(--tf-text-mute); background: rgba(0, 0, 0, 0.12); cursor: default; }
.k2-ticket-form .tf-textarea { resize: vertical; min-height: 120px; line-height: 1.5; }

.k2-ticket-form .tf-phone-wrap { position: relative; }
.k2-ticket-form .tf-input--phone { font-family: 'JetBrains Mono', monospace; }

.k2-ticket-form .tf-select { position: relative; }
.k2-ticket-form .tf-select-trigger { display: flex; justify-content: space-between; align-items: center; text-align: left; }
.k2-ticket-form .tf-select-placeholder { color: var(--tf-text-dim); }
.k2-ticket-form .tf-select-value { display: flex; align-items: center; gap: 10px; }
.k2-ticket-form .tf-dot { width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0; }
.k2-ticket-form .tf-chev { color: var(--tf-text-mute); transition: transform 0.2s; flex-shrink: 0; }
.k2-ticket-form .tf-select-trigger.open .tf-chev { transform: rotate(180deg); }
.k2-ticket-form .tf-select-menu {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0;
  background: var(--tf-bg-elev-2); border: 1px solid var(--tf-border-strong); border-radius: var(--tf-radius-sm);
  max-height: min(320px, 55vh); overflow-y: auto; z-index: 80;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5); display: none; padding: 6px;
}
.k2-ticket-form .tf-select-menu.open { display: block; }
.k2-ticket-form .tf-select-option { padding: 10px 12px; border-radius: 6px; display: flex; align-items: center; gap: 10px; cursor: pointer; transition: background 0.1s; min-height: 44px; }
.k2-ticket-form .tf-select-option:hover, .k2-ticket-form .tf-select-option.kbd { background: rgba(255, 255, 255, 0.05); }
.k2-ticket-form .tf-opt-title { font-size: 14px; }

.k2-ticket-form .tf-priority-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.k2-ticket-form .tf-prio { padding: 12px 10px; border: 1px solid var(--tf-border); border-radius: var(--tf-radius-sm); background: rgba(0, 0, 0, 0.15); transition: all 0.15s; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; text-align: left; min-height: 72px; justify-content: center; -webkit-tap-highlight-color: transparent; }
.k2-ticket-form .tf-prio:hover { border-color: var(--tf-border-strong); }
.k2-ticket-form .tf-prio.selected { border-color: var(--tf-accent); background: var(--tf-accent-glow); }
.k2-ticket-form .tf-prio-name { font-size: 13px; font-weight: 600; }
.k2-ticket-form .tf-prio-sla { font-size: 10px; color: var(--tf-text-dim); font-family: 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: 0.05em; }
.k2-ticket-form .tf-prio-bar { width: 24px; height: 3px; border-radius: 2px; }
.k2-ticket-form .tf-prio[data-p="low"] .tf-prio-bar { background: #5dcaa5; }
.k2-ticket-form .tf-prio[data-p="med"] .tf-prio-bar { background: #f5a524; }
.k2-ticket-form .tf-prio[data-p="high"] .tf-prio-bar { background: #ff8c5a; }
.k2-ticket-form .tf-prio[data-p="crit"] .tf-prio-bar { background: #ff5d6c; }

.k2-ticket-form .tf-dropzone { border: 1.5px dashed var(--tf-border-strong); border-radius: var(--tf-radius-sm); padding: 22px; text-align: center; cursor: pointer; transition: all 0.15s; background: rgba(0, 0, 0, 0.1); }
.k2-ticket-form .tf-dropzone:hover, .k2-ticket-form .tf-dropzone.drag { border-color: var(--tf-accent); background: var(--tf-accent-glow); }
.k2-ticket-form .tf-dropzone-icon { width: 36px; height: 36px; margin: 0 auto 10px; border-radius: 10px; background: rgba(29, 158, 117, 0.15); display: grid; place-items: center; color: var(--tf-accent-soft); }
.k2-ticket-form .tf-dropzone-text { font-size: 13px; color: var(--tf-text); font-weight: 500; }
.k2-ticket-form .tf-dropzone-text strong { color: var(--tf-accent-soft); }
.k2-ticket-form .tf-dropzone-sub { font-size: 11px; color: var(--tf-text-dim); margin-top: 4px; font-family: 'JetBrains Mono', monospace; }
.k2-ticket-form .tf-file-list { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.k2-ticket-form .tf-file-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: rgba(0, 0, 0, 0.25); border: 1px solid var(--tf-border); border-radius: 8px; font-size: 12px; }
.k2-ticket-form .tf-file-item .tf-file-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.k2-ticket-form .tf-file-item .tf-file-size { color: var(--tf-text-dim); font-family: 'JetBrains Mono', monospace; font-size: 10px; }
.k2-ticket-form .tf-file-item button { color: var(--tf-text-mute); padding: 4px; display: grid; place-items: center; }
.k2-ticket-form .tf-file-item button:hover { color: var(--tf-danger); }

.k2-ticket-form .tf-review { font-size: 13px; color: var(--tf-text-mute); line-height: 1.5; }

.k2-ticket-form .tf-footer { padding: 18px 26px; border-top: 1px solid var(--tf-border); background: rgba(0, 0, 0, 0.15); display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border-radius: 0 0 19px 19px; }
.k2-ticket-form .tf-footer-meta { font-size: 11px; color: var(--tf-text-dim); font-family: 'JetBrains Mono', monospace; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.k2-ticket-form .ticket-system-badge { padding: 4px 8px; background: rgba(29, 158, 117, 0.1); border: 1px solid rgba(29, 158, 117, 0.25); border-radius: 5px; color: var(--tf-accent-soft); font-weight: 500; }
.k2-ticket-form .tf-submit { background: var(--tf-accent); color: #06241B; padding: 12px 22px; border-radius: 10px; font-weight: 700; font-size: 13px; letter-spacing: 0.02em; display: inline-flex; align-items: center; gap: 10px; transition: all 0.15s; }
.k2-ticket-form .tf-submit:hover:not(:disabled) { background: var(--tf-accent-soft); transform: translateY(-1px); }
.k2-ticket-form .tf-submit:disabled { opacity: 0.5; cursor: not-allowed; }
.k2-ticket-form .tf-submit svg { transition: transform 0.2s; }
.k2-ticket-form .tf-submit:hover:not(:disabled) svg { transform: translateX(3px); }

@media (pointer: coarse) {
  .k2-ticket-form .tf-input, .k2-ticket-form .tf-textarea, .k2-ticket-form .tf-select-trigger,
  .k2-ticket-form .tf-input--phone { font-size: 16px; }
  .k2-ticket-form .tf-dropzone, .k2-ticket-form .tf-prio, .k2-ticket-form .tf-submit,
  .k2-ticket-form .tf-select-trigger, .k2-ticket-form .tf-file-item button { touch-action: manipulation; }
}

@media (max-width: 767px) {
  .k2-ticket-form .tf-header, .k2-ticket-form .tf-body, .k2-ticket-form .tf-footer { padding-left: 18px; padding-right: 18px; }
  .k2-ticket-form .tf-stepper { padding: 0 18px; gap: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .k2-ticket-form .tf-stepper::-webkit-scrollbar { display: none; }
  .k2-ticket-form .tf-step { flex: 1 0 auto; justify-content: center; padding-left: 6px; padding-right: 6px; }
  .k2-ticket-form .tf-field-grid { grid-template-columns: 1fr; }
  .k2-ticket-form .tf-priority-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .k2-ticket-form .tf-footer { flex-direction: column; align-items: stretch; }
  .k2-ticket-form .tf-footer-meta { justify-content: center; text-align: center; }
  .k2-ticket-form .tf-submit { justify-content: center; width: 100%; min-height: 48px; }
}
