/* ===== PAGE WRAPPER ===== */
.schema-tool-page .site-wrap {
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px;
}

/* ===== HERO ===== */
.schema-hero {
  text-align: center;
  padding: 40px 20px;
}

.schema-hero h1 {
  font-size: 32px;
  line-height: 1.3;
  margin-bottom: 16px;
}

.hero-text {
  max-width: 800px;
  margin: 0 auto 20px;
  color: #555;
}

.hero-highlights {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 20px;
}

.hero-highlights span {
  background: #f1f5f9;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 13px;
}

.hero-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
}

/* ===== LAYOUT ===== */
.schema-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 24px;
}

/* ===== CONTROL PANEL ===== */
.schema-controls {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.control-panel {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  border: 1px solid #e5e7eb;
}

.panel-head h2 {
  margin: 6px 0;
}

.panel-head p {
  color: #666;
  font-size: 14px;
}

/* ===== MODE SWITCH ===== */
.mode-switch {
  display: flex;
  gap: 10px;
  margin-top: 12px;
}

.mode-btn {
  flex: 1;
  padding: 10px;
  border-radius: 8px;
  border: 1px solid #ddd;
  background: #f8fafc;
  cursor: pointer;
}

.mode-btn.active {
  background: #2563eb;
  color: #fff;
  border-color: #2563eb;
}

/* ===== CATEGORY ===== */
.category-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.category-card {
  padding: 14px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #fafafa;
  text-align: left;
  cursor: pointer;
}

.category-card strong {
  display: block;
}

.category-card span {
  font-size: 12px;
  color: #666;
}

.category-card.active {
  border-color: #2563eb;
  background: #eef4ff;
}

/* ===== SCHEMA TYPES ===== */
.schema-types {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.schema-pill {
  padding: 6px 12px;
  border-radius: 20px;
  background: #f1f5f9;
  cursor: pointer;
  font-size: 13px;
}

.schema-pill.active {
  background: #2563eb;
  color: #fff;
}

/* ===== FORM ===== */
.field-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.field-group {
  display: flex;
  flex-direction: column;
}

.field-group-full {
  grid-column: span 2;
}

label {
  font-size: 13px;
  margin-bottom: 4px;
  color: #444;
}

input, textarea, select {
  padding: 10px;
  border-radius: 8px;
  border: 1px solid #ddd;
  font-size: 14px;
}

textarea {
  resize: vertical;
}

/* ===== FORM SECTIONS ===== */
.form-section {
  margin-top: 20px;
}

.form-section-header h3 {
  margin-bottom: 6px;
}

.form-section.is-hidden {
  display: none;
}

/* ===== REPEATER ===== */
.repeater-block {
  margin-top: 14px;
}

.repeater-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.repeater {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.repeater-row {
  display: flex;
  gap: 10px;
}

.repeater-row input {
  flex: 1;
}

.add-row-btn,
.remove-row-btn {
  padding: 6px 10px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
}

.add-row-btn {
  background: #2563eb;
  color: #fff;
}

.remove-row-btn {
  background: #ef4444;
  color: #fff;
}

/* ===== BUTTONS ===== */
.btn-primary {
  background: #2563eb;
  color: #fff;
  padding: 10px 16px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
}

.btn-secondary {
  background: #e5e7eb;
  padding: 10px 16px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
}

.btn-ghost {
  background: transparent;
  border: 1px solid #ddd;
  padding: 10px 16px;
  border-radius: 8px;
  cursor: pointer;
}

.tool-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

/* ===== OUTPUT PANEL ===== */
.schema-output {
  position: sticky;
  top: 20px;
  height: fit-content;
}

.output-card {
  background: #111827;
  color: #fff;
  padding: 16px;
  border-radius: 12px;
}

.output-head h2 {
  font-size: 18px;
}

.output-head p {
  font-size: 13px;
  color: #bbb;
}

.output-tabs {
  display: flex;
  gap: 10px;
  margin: 12px 0;
}

.output-tab {
  background: #1f2937;
  color: #ccc;
  padding: 6px 12px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
}

.output-tab.active {
  background: #2563eb;
  color: #fff;
}

.code-output {
  background: #000;
  padding: 12px;
  border-radius: 8px;
  font-size: 12px;
  overflow-x: auto;
  max-height: 400px;
}

/* ===== VALIDATION ===== */
.validation-box {
  font-size: 13px;
  margin-bottom: 10px;
}

.validation-item {
  padding: 6px;
  border-radius: 6px;
  margin-bottom: 6px;
}

.validation-info {
  background: #1e3a8a;
}

.validation-warning {
  background: #92400e;
}

.validation-error {
  background: #7f1d1d;
}

/* ===== INFO SECTIONS ===== */
.info-section {
  margin-top: 40px;
}

.info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.info-card {
  background: #fff;
  padding: 16px;
  border-radius: 10px;
  border: 1px solid #eee;
}

/* ===== STEPS ===== */
.steps-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.step-item {
  display: flex;
  gap: 10px;
}

/* ===== CHIPS ===== */
.chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.chip-list span {
  background: #f1f5f9;
  padding: 6px 12px;
  border-radius: 20px;
}

/* ===== FAQ ===== */
.faq-item {
  margin-bottom: 16px;
}

.faq-item h3 {
  font-size: 16px;
}

/* ===== CTA ===== */
.cta-panel {
  text-align: center;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 992px) {
  .schema-layout {
    grid-template-columns: 1fr;
  }

  .schema-output {
    position: static;
  }

  .info-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 768px) {
  .field-grid {
    grid-template-columns: 1fr;
  }

  .field-group-full {
    grid-column: span 1;
  }

  .category-grid {
    grid-template-columns: 1fr;
  }

  .info-grid {
    grid-template-columns: 1fr;
  }

  .hero-actions {
    flex-direction: column;
  }
}