/* =============================================================
   EvvyTools — Meta Tag Generator
   Custom styles for preview cards, code output, character
   counters, and tag audit panels.
   ============================================================= */

/* ----- Character Counter ----- */
.mtg-char-counter {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  font-weight: 600;
  margin-top: 0.375rem;
  transition: color 0.2s ease;
}

.mtg-char-counter .mtg-count {
  font-variant-numeric: tabular-nums;
}

.mtg-char-optimal {
  color: var(--bs-success, #198754);
}

.mtg-char-warning {
  color: var(--bs-warning, #ffc107);
}

.mtg-char-danger {
  color: var(--bs-danger, #dc3545);
}

/* ----- Code Hero Override ----- */
.mtg-code-hero {
  text-align: left;
  padding: 1.25rem 1.5rem;
}

/* ----- Code Output Block ----- */
.mtg-code-wrap {
  position: relative;
  margin-top: 1rem;
}

.mtg-code-block {
  background: var(--evvy-gray-100, #f8f9fa);
  border: 1px solid var(--evvy-border-color, #DEE2E6);
  border-radius: var(--evvy-radius-lg, 12px);
  padding: 1.25rem 1.5rem;
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  font-size: 0.8125rem;
  line-height: 1.65;
  color: var(--evvy-text-primary, #333);
  white-space: pre-wrap;
  word-break: break-all;
  overflow-x: auto;
  max-height: 400px;
  overflow-y: auto;
  tab-size: 2;
}

[data-bs-theme="dark"] .mtg-code-block {
  background: var(--evvy-gray-100, #1E1E1E);
}

.mtg-copy-btn {
  position: absolute;
  top: 0.625rem;
  right: 0.625rem;
  z-index: 2;
  padding: 0.3rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: var(--bs-border-radius-pill, 50rem);
  border: 1px solid var(--evvy-border-color, #DEE2E6);
  background: var(--bs-body-bg, #fff);
  color: var(--evvy-text-secondary, #666);
  cursor: pointer;
  transition: all 0.15s ease;
}

.mtg-copy-btn:hover {
  border-color: var(--cluster-dark, #1D3354);
  color: var(--cluster-dark, #1D3354);
  background: color-mix(in srgb, var(--cluster-dark, #1D3354) 6%, transparent);
}

[data-bs-theme="dark"] .mtg-copy-btn {
  background: var(--evvy-gray-100, #1E1E1E);
  border-color: var(--evvy-border-color, #333);
}

/* ----- Section Copy Buttons ----- */
.mtg-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}

.mtg-section-copy {
  padding: 0.2rem 0.5rem;
  font-size: 0.6875rem;
  font-weight: 600;
  border-radius: var(--bs-border-radius-pill, 50rem);
  border: 1px solid var(--evvy-border-color, #DEE2E6);
  background: transparent;
  color: var(--evvy-text-secondary, #666);
  cursor: pointer;
  transition: all 0.15s ease;
}

.mtg-section-copy:hover {
  border-color: var(--cluster-dark, #1D3354);
  color: var(--cluster-dark, #1D3354);
}

/* ----- Preview Cards ----- */
.mtg-preview-panel {
  margin-top: 1.5rem;
}

.mtg-preview-card {
  background: var(--bs-body-bg, #fff);
  border: 1px solid var(--evvy-border-color, #DEE2E6);
  border-radius: var(--evvy-radius-lg, 12px);
  padding: 1.25rem;
  margin-bottom: 1rem;
}

[data-bs-theme="dark"] .mtg-preview-card {
  background: var(--evvy-gray-100, #1E1E1E);
}

.mtg-preview-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--evvy-text-secondary, #666);
  margin-bottom: 0.875rem;
}

/* Google SERP Preview */
.mtg-serp-url {
  font-size: 0.8125rem;
  color: var(--evvy-text-secondary, #666);
  margin-bottom: 0.125rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mtg-serp-title {
  font-size: 1.125rem;
  font-weight: 400;
  color: #1a0dab;
  line-height: 1.3;
  margin-bottom: 0.25rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

[data-bs-theme="dark"] .mtg-serp-title {
  color: #8ab4f8;
}

.mtg-serp-desc {
  font-size: 0.875rem;
  color: var(--evvy-text-secondary, #666);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Facebook / Social Preview */
.mtg-social-preview {
  border: 1px solid var(--evvy-border-color, #DEE2E6);
  border-radius: 8px;
  overflow: hidden;
}

.mtg-social-img {
  width: 100%;
  height: 160px;
  background: var(--cluster-surface, #E8EDF3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--evvy-text-secondary, #666);
  font-size: 0.8125rem;
  overflow: hidden;
}

.mtg-social-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mtg-social-body {
  padding: 0.75rem 1rem;
  background: var(--bs-body-bg, #f0f2f5);
}

[data-bs-theme="dark"] .mtg-social-body {
  background: var(--evvy-gray-100, #1E1E1E);
}

.mtg-social-domain {
  font-size: 0.6875rem;
  text-transform: uppercase;
  color: var(--evvy-text-secondary, #666);
  letter-spacing: 0.02em;
}

.mtg-social-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--evvy-text-primary, #333);
  line-height: 1.3;
  margin: 0.125rem 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.mtg-social-desc {
  font-size: 0.8125rem;
  color: var(--evvy-text-secondary, #666);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Twitter Card Preview */
.mtg-twitter-card {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--evvy-border-color, #DEE2E6);
}

.mtg-twitter-img {
  width: 100%;
  height: 140px;
  background: var(--cluster-surface, #E8EDF3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--evvy-text-secondary, #666);
  font-size: 0.8125rem;
  overflow: hidden;
}

.mtg-twitter-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mtg-twitter-body {
  padding: 0.625rem 0.875rem;
}

.mtg-twitter-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--evvy-text-primary, #333);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mtg-twitter-desc {
  font-size: 0.8125rem;
  color: var(--evvy-text-secondary, #666);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-top: 0.125rem;
}

.mtg-twitter-domain {
  font-size: 0.75rem;
  color: var(--evvy-text-secondary, #666);
  margin-top: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

/* ----- Missing Tags Warning ----- */
.mtg-warnings {
  margin-top: 1rem;
}

.mtg-warning-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  padding: 0.375rem 0;
  color: var(--bs-warning, #ffc107);
}

.mtg-warning-item i {
  font-size: 0.875rem;
  flex-shrink: 0;
}

/* ----- Dynamic Results Heading ----- */
.mtg-results-heading {
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: var(--evvy-text-primary, #333);
}

/* ----- Subscriber Panels ----- */
.mtg-audit-panel {
  background: var(--bs-body-bg, #fff);
  border: 1px solid var(--evvy-border-color, #DEE2E6);
  border-radius: var(--evvy-radius-lg, 12px);
  padding: 1.25rem 1.5rem;
  margin-top: 1.5rem;
}

[data-bs-theme="dark"] .mtg-audit-panel {
  background: var(--evvy-gray-100, #1E1E1E);
}

.mtg-audit-url-wrap {
  display: flex;
  gap: 0.5rem;
}

.mtg-audit-url-wrap .form-control {
  flex: 1;
}

.mtg-audit-results {
  margin-top: 1rem;
}

.mtg-audit-row {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--evvy-border-color, #DEE2E6);
  font-size: 0.8125rem;
}

.mtg-audit-row:last-child {
  border-bottom: none;
}

.mtg-audit-tag {
  font-weight: 700;
  min-width: 140px;
  flex-shrink: 0;
  color: var(--evvy-text-primary, #333);
}

.mtg-audit-value {
  color: var(--evvy-text-secondary, #666);
  word-break: break-all;
}

.mtg-audit-missing {
  color: var(--bs-danger, #dc3545);
  font-style: italic;
}

.mtg-audit-present {
  color: var(--bs-success, #198754);
}

/* JSON-LD panel */
.mtg-jsonld-panel {
  margin-top: 1.5rem;
}

.mtg-jsonld-type-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

/* Bulk CSV panel */
.mtg-bulk-panel {
  margin-top: 1.5rem;
}

.mtg-bulk-drop {
  border: 2px dashed var(--evvy-border-color, #DEE2E6);
  border-radius: var(--evvy-radius-lg, 12px);
  padding: 2rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.mtg-bulk-drop:hover {
  border-color: var(--cluster-dark, #1D3354);
  background: color-mix(in srgb, var(--cluster-dark, #1D3354) 4%, transparent);
}

.mtg-bulk-icon {
  font-size: 1.5rem;
  color: var(--evvy-text-secondary, #666);
}

.mtg-bulk-label {
  margin-top: 0.5rem;
  font-weight: 600;
  color: var(--evvy-text-primary, #333);
}

.mtg-bulk-drop-active {
  border-color: var(--cluster-dark, #1D3354);
  background: color-mix(in srgb, var(--cluster-dark, #1D3354) 8%, transparent);
}

.mtg-bulk-info {
  font-size: 0.8125rem;
  color: var(--evvy-text-secondary, #666);
  margin-top: 0.5rem;
}

.mtg-bulk-results {
  margin-top: 1rem;
  max-height: 300px;
  overflow-y: auto;
}

/* ----- Robots toggles ----- */
.mtg-toggle-row {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  flex-wrap: wrap;
}

.mtg-toggle-row .form-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* ----- Input grid for side-by-side fields ----- */
.mtg-input-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

/* ----- Responsive ----- */
@media (max-width: 575.98px) {
  .mtg-input-grid {
    grid-template-columns: 1fr;
  }

  .mtg-audit-url-wrap {
    flex-direction: column;
  }

  .mtg-audit-row {
    flex-direction: column;
    gap: 0.125rem;
  }

  .mtg-audit-tag {
    min-width: auto;
  }

  .mtg-social-img,
  .mtg-twitter-img {
    height: 120px;
  }

  .mtg-jsonld-type-row {
    flex-direction: column;
  }
}
