/* Kindred Core — frontend styles */
.kd-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border:1px solid var(--kd-border,#d0d5dd);border-radius:8px;background:var(--kd-bg,#fff);color:var(--kd-text,#1a1a1a);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;text-decoration:none}
.kd-btn:hover{background:var(--kd-bg-hover,#f5f7fa)}
.kd-btn-primary{background:var(--kd-primary,#2563eb);border-color:var(--kd-primary,#2563eb);color:#fff}
.kd-btn-primary:hover{background:var(--kd-primary-hover,#1d4ed8)}
.kd-btn-danger{background:var(--kd-error,#dc2626);border-color:var(--kd-error,#dc2626);color:#fff}
.kd-btn-sm{padding:6px 12px;font-size:13px}
.kd-btn:disabled{opacity:.5;cursor:not-allowed}
.kd-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--kd-neutral,#e5e7eb);display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:18px;flex-shrink:0}
.kd-avatar-lg{width:96px;height:96px;font-size:36px}
.kd-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.kd-card{background:#fff;border:1px solid var(--kd-border,#e5e7eb);border-radius:12px;padding:20px;margin-bottom:16px}
.kd-post{display:flex;gap:12px}
.kd-post-body{flex:1;min-width:0}
.kd-post-meta{font-size:12px;color:var(--kd-text-muted,#6b7280);margin-bottom:4px}
.kd-post-meta a{color:var(--kd-text-muted,#6b7280);text-decoration:none;font-weight:600}
.kd-post-content{font-size:15px;line-height:1.6;color:var(--kd-text,#1a1a1a);white-space:pre-wrap;word-wrap:break-word;margin:6px 0}
.kd-post-actions{display:flex;gap:16px;font-size:13px;color:var(--kd-text-muted,#6b7280)}
.kd-comment{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--kd-border,#f0f0f0)}
.kd-comment-body{flex:1}
.kd-comment-content{font-size:14px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.kd-input,.kd-textarea,.kd-select{width:100%;padding:10px 12px;border:1px solid var(--kd-border,#d0d5dd);border-radius:8px;font-size:14px;font-family:inherit;background:#fff;color:var(--kd-text,#1a1a1a)}
.kd-textarea{min-height:80px;resize:vertical}
.kd-label{display:block;font-size:13px;font-weight:600;margin-bottom:4px;color:var(--kd-text,#1a1a1a)}
.kd-field{margin-bottom:16px}
.kd-grid{display:grid;gap:12px}
.kd-grid-2{grid-template-columns:1fr 1fr}
.kd-grid-3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:640px){.kd-grid-2,.kd-grid-3{grid-template-columns:1fr}}
.kd-badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600;background:var(--kd-neutral,#e5e7eb);color:var(--kd-text,#1a1a1a)}
.kd-badge-success{background:#dcfce7;color:#166534}
.kd-badge-warning{background:#fef3c7;color:#92400e}
.kd-badge-info{background:#dbeafe;color:#1e40af}
.kd-badge-muted{background:#f3f4f6;color:#6b7280}
.kd-alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}
.kd-alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.kd-alert-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}
.kd-alert-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}
.kd-spinner{display:inline-block;width:18px;height:18px;border:2px solid #d0d5dd;border-top-color:var(--kd-primary,#2563eb);border-radius:50%;animation:kd-spin .6s linear infinite}
@keyframes kd-spin{to{transform:rotate(360deg)}}
.kd-hidden{display:none}
.kd-msg-bubble{max-width:75%;padding:10px 14px;border-radius:14px;font-size:14px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;margin-bottom:6px}
.kd-msg-mine{margin-left:auto;background:var(--kd-primary,#2563eb);color:#fff;border-bottom-right-radius:4px}
.kd-msg-theirs{margin-right:auto;background:var(--kd-neutral,#e5e7eb);color:var(--kd-text,#1a1a1a);border-bottom-left-radius:4px}
.kd-msg-time{font-size:11px;color:var(--kd-text-muted,#6b7280);margin-bottom:10px}
.kd-msg-mine+.kd-msg-time{text-align:right}
.kd-search-card{display:flex;gap:14px;align-items:flex-start}
.kd-search-card-info{flex:1;min-width:0}
.kd-search-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.kd-username-ok{color:#166534;font-weight:600}
.kd-username-taken{color:#991b1b;font-weight:600}
.kd-empty{text-align:center;padding:40px 20px;color:var(--kd-text-muted,#6b7280)}
