/* Feature pages – shared styles */

/* Syntax highlighting */
.syn-kw { font-weight: 700; color: #1e293b; }
.syn-str { color: #dc2626; }
.syn-cm { color: #64748b; font-style: italic; }
.syn-mg { color: #9333ea; }
.syn-nm { color: #2563eb; }
.syn-fn { color: #1e293b; }

/* Diff view */
.diff-line { display: flex; gap: 0.5rem; padding: 2px 12px; font-family: ui-monospace, monospace; font-size: 12px; line-height: 1.8; }
.diff-add { background: #dcfce7; color: #166534; }
.diff-rm { background: #fee2e2; color: #991b1b; }
.diff-same { background: #fff; color: #64748b; }
.diff-gutter { min-width: 16px; text-align: right; user-select: none; color: #94a3b8; }
.diff-add .diff-gutter { color: #16a34a; }
.diff-rm .diff-gutter { color: #ef4444; }

/* Typing cursor */
@keyframes jnb-blink { 0%,100% { opacity:1 } 50% { opacity:0 } }
.jnb-cursor { display: inline-block; width: 2px; height: 14px; background: #2563eb; vertical-align: text-bottom; animation: jnb-blink 1s step-end infinite; }

/* Progress bar fill */
.jnb-prog-fill { height: 100%; border-radius: 4px; transition: width 1.5s ease; }
