:root {
    --text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);
    --text-sm:clamp(0.875rem,0.8rem + 0.35vw,1rem);
    --text-base:clamp(1rem,0.95rem + 0.25vw,1.125rem);
    --text-lg:clamp(1.125rem,1rem + 0.75vw,1.5rem);
    --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
    --space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;
    --space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;
    --space-12:3rem;
    --radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;
    --transition:180ms cubic-bezier(0.16,1,0.3,1);
}

.thread-page { max-width: 800px; margin-inline: auto; padding: var(--space-8) var(--space-4); }

/* Breadcrumb */
.breadcrumb { font-size: var(--text-xs); color: var(--color-text-muted, #7a7974); margin-bottom: var(--space-6); }
.breadcrumb a { color: var(--color-primary, #01696f); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }

/* OP post */
.op-card {
    background: var(--color-surface, #f9f8f5);
    color: var(--color-text, #28251d);
    border: 1px solid oklch(from var(--color-text, #28251d) l c h / 0.10);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    margin-bottom: var(--space-8);
}
.op-meta { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-3); }
.post-category {
    font-size: var(--text-xs); padding: 2px var(--space-2);
    background: var(--color-primary, #01696f);
    color: #fff;
    border-radius: 9999px; font-weight: 600;
}
.op-author { font-size: var(--text-xs); color: var(--color-text-muted, #7a7974); }
.op-date { font-size: var(--text-xs); color: var(--color-text-faint, #bab9b4); margin-left: auto; }
.op-title { font-size: var(--text-lg); font-weight: 700; margin-bottom: var(--space-3); }
.op-body { font-size: var(--text-base); line-height: 1.7; white-space: pre-wrap; word-break: break-word; }
.op-delete-btn {
    display: inline-block; margin-top: var(--space-4);
    font-size: var(--text-xs); color: var(--color-error, #a12c7b);
    border: 1px solid var(--color-error, #a12c7b);
    border-radius: var(--radius-sm); padding: 3px var(--space-3);
    background: transparent; cursor: pointer;
    transition: background var(--transition), color var(--transition);
}
.op-delete-btn:hover { background: var(--color-error, #a12c7b); color: #fff; }

/* Replies section */
.replies-section h2 { font-size: var(--text-lg); font-weight: 700; margin-bottom: var(--space-5); }

.reply-card {
    display: flex; gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    border-left: 2px solid var(--color-divider, #dcd9d5);
    margin-bottom: var(--space-4);
    position: relative;
}
.reply-avatar {
    width: 36px; height: 36px; min-width: 36px;
    border-radius: 50%;
    background: var(--color-primary-highlight, #cedcd8);
    display: flex; align-items: center; justify-content: center;
    font-size: var(--text-sm); font-weight: 700;
    color: var(--color-primary, #01696f);
}
.reply-content { flex: 1; min-width: 0; }
.reply-meta { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); flex-wrap: wrap; }
.reply-author { font-size: var(--text-sm); font-weight: 600; }
.reply-date { font-size: var(--text-xs); color: var(--color-text-faint, #bab9b4); }
.reply-body { font-size: var(--text-sm); line-height: 1.6; white-space: pre-wrap; word-break: break-word; }

/* Reply form */
.reply-form-section { margin-top: var(--space-8); }
.reply-form-section h3 { font-size: var(--text-base); font-weight: 700; margin-bottom: var(--space-4); }
.forum-form { display: flex; flex-direction: column; gap: var(--space-3); }
.forum-form textarea {
    width: 100%; padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border, #d4d1ca);
    border-radius: var(--radius-md); font-size: var(--text-sm);
    background: var(--color-surface-2, #fbfbf9);
    color: var(--color-text, #28251d);
    resize: vertical; min-height: 90px;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.forum-form textarea:focus { outline: none; border-color: var(--color-primary, #01696f); box-shadow: 0 0 0 3px oklch(from var(--color-primary, #01696f) l c h / 0.15); }
.btn-primary-forum {
    align-self: flex-start; padding: var(--space-2) var(--space-6);
    background: var(--color-primary, #01696f); color: #fff;
    border: none; border-radius: var(--radius-md);
    font-size: var(--text-sm); font-weight: 600; cursor: pointer;
    transition: background var(--transition);
}
.btn-primary-forum:hover { background: var(--color-primary-hover, #0c4e54); }
.form-message { font-size: var(--text-sm); padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); display: none; }
.form-message.success { background: #d4dfcc; color: #1e3f0a; display: block; }
.form-message.error { background: #e0ced7; color: #561740; display: block; }

.auth-prompt { text-align: center; padding: var(--space-6); background: var(--color-surface, #f9f8f5); border-radius: var(--radius-lg); border: 1px dashed var(--color-border, #d4d1ca); color: var(--color-text-muted, #7a7974); }
.auth-prompt a { color: var(--color-primary, #01696f); font-weight: 600; }
.auth-inline-btn {
    background: none; border: none; padding: 0;
    color: var(--color-primary, #01696f); font-weight: 600;
    font-size: inherit; cursor: pointer; text-decoration: underline;
    text-underline-offset: 2px;
}
.auth-inline-btn:hover { color: var(--color-primary-hover, #0c4e54); }

.empty-replies { padding: var(--space-6); text-align: center; color: var(--color-text-faint, #bab9b4); font-size: var(--text-sm); }

@media (max-width: 600px) {
    .thread-page { padding: var(--space-5) var(--space-3); }
    .op-card { padding: var(--space-4); }
    .reply-card { padding: var(--space-3); gap: var(--space-3); }
}