body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

/* RTL support for Arabic content */
[dir="rtl"] {
    font-family: 'Noto Kufi Arabic', 'Inter', system-ui, sans-serif;
}

/* Article preview styles */
.article-content {
    line-height: 1.8;
}

.article-content h1 { font-size: 1.75rem; font-weight: 700; margin: 1.5rem 0 1rem; color: #fff; }
.article-content h2 { font-size: 1.5rem; font-weight: 600; margin: 1.5rem 0 0.75rem; color: #e5e7eb; border-bottom: 1px solid #374151; padding-bottom: 0.5rem; }
.article-content h3 { font-size: 1.25rem; font-weight: 600; margin: 1.25rem 0 0.5rem; color: #d1d5db; }
.article-content h4 { font-size: 1.1rem; font-weight: 600; margin: 1rem 0 0.5rem; color: #d1d5db; }
.article-content p { margin: 0.75rem 0; color: #9ca3af; }
.article-content ul, .article-content ol { margin: 0.75rem 0; padding-left: 1.5rem; color: #9ca3af; }
[dir="rtl"] .article-content ul, [dir="rtl"] .article-content ol { padding-left: 0; padding-right: 1.5rem; }
.article-content li { margin: 0.25rem 0; }
.article-content table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.article-content th { background: #1f2937; color: #e5e7eb; padding: 0.5rem 0.75rem; text-align: left; border: 1px solid #374151; font-weight: 600; }
.article-content td { padding: 0.5rem 0.75rem; border: 1px solid #374151; color: #9ca3af; }
[dir="rtl"] .article-content th, [dir="rtl"] .article-content td { text-align: right; }
.article-content blockquote { border-left: 3px solid #3b82f6; padding-left: 1rem; margin: 1rem 0; color: #9ca3af; font-style: italic; }
[dir="rtl"] .article-content blockquote { border-left: none; border-right: 3px solid #3b82f6; padding-left: 0; padding-right: 1rem; }
.article-content strong { color: #e5e7eb; }
.article-content a { color: #60a5fa; text-decoration: underline; }
.article-content img, .article-content .image-placeholder {
    background: #1f2937; border: 2px dashed #374151; border-radius: 0.5rem;
    padding: 2rem; text-align: center; color: #6b7280; margin: 1rem 0; display: block;
}
.article-content pre, .article-content code {
    background: #1f2937; border-radius: 0.25rem; padding: 0.125rem 0.375rem; font-size: 0.875rem; color: #d1d5db;
}
.article-content pre { padding: 1rem; overflow-x: auto; }

/* Progress step states */
.step-active .step-circle { background: #2563eb; color: #fff; }
.step-active .step-label { color: #fff; }
.step-active .step-detail { color: #93c5fd; }
.step-done .step-circle { background: #16a34a; color: #fff; }
.step-done .step-label { color: #86efac; }
.step-done .step-detail { color: #4ade80; }
.step-error .step-circle { background: #dc2626; color: #fff; }
.step-error .step-label { color: #fca5a5; }

/* Pulse animation */
@keyframes pulse-ring {
    0% { transform: scale(1); opacity: 1; }
    100% { transform: scale(1.5); opacity: 0; }
}
.step-active .step-circle::after {
    content: ''; position: absolute; inset: -4px; border-radius: 9999px;
    border: 2px solid #3b82f6; animation: pulse-ring 1.5s ease-out infinite;
}
.step-active .step-circle { position: relative; }

/* Copy button feedback */
.copy-success { background: #16a34a !important; }

/* Image placeholder cards */
.image-placeholder-card {
    background: #1a2332; border: 2px dashed #3b82f6; border-radius: 0.75rem;
    padding: 1.5rem; margin: 1.25rem 0; text-align: center;
}
.image-placeholder-icon { color: #3b82f6; margin-bottom: 0.5rem; display: flex; justify-content: center; }
.image-placeholder-text { color: #d1d5db; font-size: 0.95rem; font-weight: 500; margin-bottom: 0.25rem; }
.image-placeholder-alt { color: #6b7280; font-size: 0.8rem; }
.image-placeholder-title { color: #6b7280; font-size: 0.8rem; }

/* Line clamp */
.line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
