.rich-content > :first-child { margin-top: 0; }
.rich-content p { margin: 1rem 0 0; line-height: 1.75; color: #475569; }
.rich-content h1, .rich-content h2, .rich-content h3, .rich-content h4, .rich-content h5, .rich-content h6 { margin: 1.75rem 0 .75rem; font-weight: 700; line-height: 1.25; color: #0f172a; }
.rich-content ul, .rich-content ol { margin: 1rem 0 0; padding-left: 1.5rem; color: #475569; }
.rich-content ul { list-style: disc; }
.rich-content ol { list-style: decimal; }
.rich-content li + li { margin-top: .35rem; }
.rich-content blockquote { margin: 1rem 0 0; border-left: 3px solid #cbd5e1; padding-left: 1rem; color: #475569; }
.rich-content a { color: #1d4ed8; text-decoration: underline; }
.rich-content img { display: inline-block; max-width: 100%; height: auto; }
.rich-content table { display: block; max-width: 100%; overflow-x: auto; width: 100%; margin: 1rem 0 0; border-collapse: collapse; color: #334155; }
.rich-content th, .rich-content td { border: 1px solid #cbd5e1; padding: .5rem .75rem; text-align: left; vertical-align: top; }
.rich-content th { background: #f8fafc; font-weight: 700; }

.tool-skeleton { display: grid; gap: 1rem; }
.tool-skeleton-banner { display: flex; min-height: 8rem; align-items: center; justify-content: space-between; gap: 1.5rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fffaf5; padding: 1.5rem; }
.tool-skeleton-stack { display: grid; flex: 1; gap: .8rem; }
.tool-skeleton-bone { display: block; border-radius: .5rem; background: linear-gradient(100deg, #e8edf3 20%, #f5f7fa 40%, #e8edf3 60%); background-size: 200% 100%; animation: tool-skeleton-shimmer 1.5s ease-in-out infinite; }
.tool-skeleton-bone-short { width: 6rem; height: .65rem; }
.tool-skeleton-bone-title { width: min(22rem, 75%); height: 1.75rem; }
.tool-skeleton-bone-wide { width: min(38rem, 90%); height: .8rem; }
.tool-skeleton-action { width: 7rem; height: 2.75rem; border-radius: .5rem; }
.tool-skeleton-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); align-items: center; gap: .85rem 1.25rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #f8fafc; padding: 1.5rem; }
.tool-skeleton-label { width: 5.5rem; height: .75rem; }
.tool-skeleton-input { height: 3rem; border: 1px solid #dbe3ed; border-radius: .4rem; background-color: #fff; }
.tool-skeleton-output { grid-column: 1 / -1; height: 4.5rem; border: 1px solid #dbe3ed; border-radius: .5rem; background-color: #fff; }
@keyframes tool-skeleton-shimmer { 100% { background-position: -200% 0; } }
@media (max-width: 640px) {
  .tool-skeleton-banner { min-height: 7rem; padding: 1rem; }
  .tool-skeleton-fields { gap: .65rem; padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .tool-skeleton-bone { animation: none; background: #e8edf3; }
}
