/* JSON格式化工具 */
.jfmt-container { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; max-width: 1180px; margin: 0 auto; }
.jfmt-section { background: var(--bg); border: 1px solid var(--rule); border-radius: var(--radius-md); padding: 20px; margin-bottom: 16px; }
.jfmt-section-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.jfmt-section-header h3 { display: flex; align-items: center; gap: 6px; font-size: .95rem; margin: 0; }
.jfmt-section-header h3 i { color: var(--accent); }
.jfmt-actions-group { display: flex; gap: 8px; }

.jfmt-textarea { width: 100%; min-height: 260px; resize: vertical; padding: 12px 14px; border: 1px solid var(--rule); border-radius: var(--radius-sm); background: var(--bg2); color: var(--ink); font-family: "SFMono-Regular", Consolas, monospace; font-size: .84rem; line-height: 1.6; }
.jfmt-textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.jfmt-textarea.jfmt-output { background: var(--bg); }

.jfmt-stats-bar { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 8px; font-size: .76rem; color: var(--muted); }

.jfmt-btn-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.jfmt-btn-grid .btn { justify-content: center; }

.jfmt-tips h4 { display: flex; align-items: center; gap: 6px; font-size: 1rem; margin: 0 0 12px; color: var(--ink); }
.jfmt-tips h4 i { color: var(--accent); }
.jfmt-tip-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.jfmt-tip-item strong { display: block; font-size: .86rem; color: var(--ink); margin-bottom: 3px; }
.jfmt-tip-item p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.6; }

.jfmt-success { margin-top: 10px; padding: 9px 12px; border-radius: var(--radius-sm); background: rgba(16,185,129,.12); color: #059669; font-size: .82rem; }
.jfmt-error { margin-top: 10px; padding: 9px 12px; border-radius: var(--radius-sm); background: rgba(239,68,68,.12); color: #dc2626; font-size: .82rem; white-space: pre-wrap; word-break: break-word; }

@media (max-width: 900px) {
  .jfmt-container { grid-template-columns: 1fr; }
  .jfmt-btn-grid { grid-template-columns: repeat(3, 1fr); }
  .jfmt-tip-grid { grid-template-columns: 1fr; }
}