.kb-section { margin-top: 24px; }
.kb-filters { display: grid; grid-template-columns: minmax(200px, 1fr) 170px 180px auto; align-items: end; gap: 14px; }
.kb-list-item { border-top: 1px solid #e5e7eb; padding: 22px 0; display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.kb-list-item h2 { font-size: 20px; margin: 12px 0 6px; }
.kb-list-item p, .kb-source p { color: #64748b; }
.kb-toolbar, .kb-feedback { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kb-toolbar select { width: auto; max-width: 240px; }
.kb-content { line-height: 1.75; overflow-wrap: anywhere; }
.kb-content h1 { font-size: 28px; line-height: 1.3; }
.kb-content h2, .kb-content h3 { margin-top: 26px; }
.kb-paragraph { margin: 10px 0; }
.kb-figure { margin: 22px 0; }
.kb-figure img { display: block; max-width: 100%; max-height: 550px; border: 1px solid #e5e7eb; border-radius: 10px; }
.kb-figure figcaption { color: #64748b; font-size: 14px; margin-top: 8px; }
.kb-image-editor { display: grid; gap: 18px; margin-top: 20px; }
.kb-image-row { display: grid; grid-template-columns: 150px 1fr; align-items: start; gap: 18px; padding: 16px; background: #f8fafc; border-radius: 10px; }
.kb-image-row img { max-width: 150px; max-height: 130px; }
.kb-image-row input { margin-top: 6px; }
.kb-messages { display: grid; gap: 22px; }
.kb-question { font-size: 18px; border-bottom: 1px solid #e5e7eb; padding-bottom: 16px; }
.kb-answer { white-space: pre-wrap; line-height: 1.7; margin: 20px 0; overflow-wrap: anywhere; }
.kb-sources { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.kb-source { border: 1px solid #dbeafe; border-radius: 10px; padding: 14px; background: #f8fbff; }
.kb-source small { color: #64748b; }
.kb-feedback { margin: 22px 0 12px; }
.kb-section summary { cursor: pointer; font-weight: 600; }
button:disabled, input[type=submit]:disabled { cursor: wait; opacity: .6; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid #60a5fa; outline-offset: 3px; }
@media (max-width: 900px) { .kb-filters { grid-template-columns: 1fr 1fr; } .kb-image-row { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .kb-filters { grid-template-columns: 1fr; } .kb-list-item { align-items: flex-start; flex-direction: column; } }
