.ws-header { background: #fff; }
.ws-brand { color: #1a1a2e; font-size: 1.1rem; }
.ws-nav-link { color: #495057; text-decoration: none; font-size: 0.9rem; padding: 0.25rem 0; }
.ws-nav-link:hover { color: #0d6efd; }
.ws-nav-link.active { color: #0d6efd; font-weight: 600; }
.ws-main { max-width: 1200px; }
.ws-login-wrap { background: #f8f9fa; margin: -1rem; }
.ws-login-card { width: 100%; max-width: 400px; border: none; }
.ws-card { border-color: #e9ecef; }
.table th { font-size: 0.8rem; font-weight: 600; color: #6c757d; }
.ws-lang-select { width: auto; min-width: 7rem; max-width: 10rem; }
.ws-pagination .pagination { flex-wrap: wrap; }
.ws-pagination-info { white-space: nowrap; }

.mkt-preview-layout {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  align-items: flex-start;
}
.mkt-preview-stage {
  flex: 0 0 auto;
  width: 100%;
  max-width: 300px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .mkt-preview-layout { flex-wrap: nowrap; }
  .mkt-preview-stage { margin: 0; }
  .mkt-preview-meta { flex: 1 1 auto; min-width: 0; }
}
.mkt-preview-phone {
  position: relative;
  width: 100%;
  aspect-ratio: 9 / 16;
  background: #111;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
}
.mkt-preview-video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #000;
}
.mkt-preview-loading,
.mkt-preview-unavailable {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  text-align: center;
  color: #f8f9fa;
  font-size: 0.875rem;
  background: rgba(0, 0, 0, 0.72);
}
.mkt-preview-meta-list {
  margin: 0;
}
.mkt-preview-meta-row {
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
  font-size: 0.875rem;
}
.mkt-preview-meta-row dt {
  margin: 0;
  color: #6c757d;
  font-weight: 600;
}
.mkt-preview-meta-row dd {
  margin: 0;
  word-break: break-word;
}
.mkt-preview-caption {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 0.5rem;
  padding: 0.75rem;
  min-height: 4rem;
  white-space: pre-wrap;
  word-break: break-word;
}
#mkt-jobs-body .btn-link,
#mkt-jobs-body a.btn-link {
  text-decoration: underline;
  cursor: pointer;
}
#mkt-preview-download-btn[href="#"] {
  pointer-events: none;
  opacity: 0.65;
}
.mkt-confirm-images {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.mkt-confirm-image-card {
  width: 120px;
  border: 1px solid #dee2e6;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.mkt-confirm-image-card img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: #f8f9fa;
}
.mkt-confirm-readonly {
  background: #f8f9fa;
  font-size: 0.875rem;
  line-height: 1.45;
}

.mkt-selected-listings {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.mkt-selected-listing-chip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
  background: #f8f9fa;
}
.mkt-selected-listing-label {
  font-weight: 500;
}
.mkt-listing-picker-table {
  max-height: 360px;
  overflow-y: auto;
}

.mkt-first-frame {
  border: 1px solid #dee2e6;
  border-radius: 0.5rem;
  padding: 0.75rem;
  background: #f8f9fa;
}
.mkt-first-frame-stage {
  display: flex;
  justify-content: center;
}
.mkt-first-frame-stage .mkt-confirm-image-card {
  max-width: 180px;
  width: 100%;
}
.mkt-first-frame-empty {
  padding: 0.75rem;
  text-align: center;
  border: 1px dashed #ced4da;
  border-radius: 0.375rem;
  background: #fff;
}

.mkt-ai-compose {
  border: 1px solid #dee2e6;
  border-radius: 0.5rem;
  padding: 0.75rem;
  background: #fff;
}
.mkt-ai-compose-image-stage {
  display: flex;
  justify-content: center;
}
.mkt-ai-compose-image-stage .mkt-confirm-image-card {
  max-width: 180px;
  width: 100%;
}
.mkt-ai-compose-output {
  font-size: 0.875rem;
  line-height: 1.45;
}
.mkt-provider-debug summary {
  cursor: pointer;
  color: #6c757d;
}
.mkt-provider-payload {
  max-height: 220px;
  overflow: auto;
  background: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
  padding: 0.5rem;
  white-space: pre-wrap;
  word-break: break-word;
}

.ws-assistant-root { min-height: 60vh; }
.ws-assistant-sidebar { max-height: 70vh; overflow: hidden; display: flex; flex-direction: column; }
.ws-assistant-conv-list { max-height: 55vh; overflow-y: auto; }
.ws-assistant-chat { min-height: 55vh; display: flex; flex-direction: column; }
.ws-assistant-messages { flex: 1 1 auto; max-height: 50vh; overflow-y: auto; }
.ws-assistant-msg { margin-bottom: 0.75rem; display: flex; }
.ws-assistant-msg-user { justify-content: flex-end; }
.ws-assistant-msg-assistant { justify-content: flex-start; }
.ws-assistant-bubble {
  max-width: 92%;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  white-space: pre-wrap;
  word-break: break-word;
}
.ws-assistant-msg-user .ws-assistant-bubble { background: #0d6efd; color: #fff; }
.ws-assistant-msg-assistant .ws-assistant-bubble { background: #f1f3f5; color: #212529; }
.ws-assistant-feedback .btn-link { font-size: 0.75rem; text-decoration: none; }
.ws-assistant-conv-item { display: flex; align-items: center; gap: 0.25rem; }
.ws-assistant-conv-item .ws-assistant-conv-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ws-assistant-conv-rename { flex-shrink: 0; opacity: 0.6; padding: 0 0.25rem; line-height: 1; }
.ws-assistant-conv-rename:hover { opacity: 1; }
.ws-assistant-conv-copy { flex-shrink: 0; opacity: 0.6; padding: 0 0.25rem; line-height: 1; }
.ws-assistant-conv-copy:hover { opacity: 1; }
