.kb-lf-form, .kb-lf-contact-form { display: flex; flex-direction: column; gap: 6px; max-width: 500px; margin-bottom: 24px; }
.kb-lf-form label, .kb-lf-contact-form label { font-weight: 600; margin-top: 8px; }
.kb-lf-form input, .kb-lf-form select, .kb-lf-form textarea,
.kb-lf-contact-form input, .kb-lf-contact-form textarea {
	padding: 8px; border: 1px solid #ccc; border-radius: 4px; font-size: 15px;
}
.kb-lf-form button, .kb-lf-contact-form button {
	margin-top: 12px; padding: 10px 18px; background: #1a5632; color: #fff;
	border: none; border-radius: 4px; cursor: pointer; font-weight: 600;
}
.kb-lf-form button:hover, .kb-lf-contact-form button:hover { background: #123d23; }
.req { color: #b00020; }
.kb-lf-error { color: #b00020; font-weight: 600; }
.kb-lf-success { color: #1a5632; font-weight: 600; }

.kb-lf-filter { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.kb-lf-filter select, .kb-lf-filter button { padding: 8px; border-radius: 4px; border: 1px solid #ccc; }

.kb-lf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.kb-lf-card {
	border: 1px solid #e0e0e0; border-radius: 10px; padding: 16px; background: #fff;
	transition: transform .15s ease, box-shadow .15s ease;
}
.kb-lf-card:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,.08); }
.kb-lf-card-top { display: flex; align-items: center; justify-content: space-between; }
.kb-lf-icon { font-size: 26px; line-height: 1; }
.kb-lf-card h3 { margin: 8px 0 4px; font-size: 17px; }
.kb-lf-meta { font-size: 13px; color: #666; margin: 0 0 8px; }
.kb-lf-badge { display: inline-block; padding: 3px 12px; border-radius: 12px; font-size: 12px; font-weight: 700; color: #fff; }
.kb-lf-badge-lost { background: #b00020; }
.kb-lf-badge-found { background: #1a5632; }

.kb-lf-contact-box { margin-top: 24px; padding: 16px; background: #f6f6f4; border-radius: 6px; }
.kb-lf-thread { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; max-height: 340px; overflow-y: auto; }
.kb-lf-msg { max-width: 75%; padding: 8px 12px; border-radius: 10px; }
.kb-lf-msg p { margin: 0; }
.kb-lf-msg-time { font-size: 11px; color: #888; display: block; margin-top: 4px; }
.kb-lf-msg-mine { align-self: flex-end; background: #1a5632; color: #fff; }
.kb-lf-msg-mine .kb-lf-msg-time { color: rgba(255,255,255,.75); }
.kb-lf-msg-theirs { align-self: flex-start; background: #fff; border: 1px solid #e0e0e0; }
.kb-lf-thread-empty { color: #777; font-style: italic; }
.kb-lf-chat-form { display: flex; gap: 8px; }
.kb-lf-chat-form textarea { flex: 1; padding: 8px; border-radius: 6px; border: 1px solid #ccc; }
.kb-lf-chat-form button { padding: 0 18px; background: #1a5632; color: #fff; border: none; border-radius: 6px; font-weight: 600; cursor: pointer; }

.kb-lf-inbox { display: flex; flex-direction: column; gap: 6px; }
.kb-lf-inbox-row {
	display: flex; align-items: center; gap: 10px; padding: 12px 14px;
	border: 1px solid #e0e0e0; border-radius: 8px; background: #fff; color: inherit;
}
.kb-lf-inbox-row:hover { border-color: #1a5632; text-decoration: none; }
.kb-lf-inbox-row span { color: #666; font-size: 13px; }
.kb-lf-unread { margin-left: auto; background: #b00020; color: #fff; border-radius: 10px; padding: 2px 10px; font-size: 12px; font-weight: 700; }

.kb-lf-notice { padding: 10px 14px; border-radius: 4px; margin: 12px 0; }
.kb-lf-notice.kb-lf-success { background: #e6f4ea; color: #1a5632; }
.kb-lf-notice.kb-lf-error { background: #fdecea; color: #b00020; }
