.form-control{background:var(--bg-input);border:1px solid var(--border-soft);border-radius:var(--radius);width:100%;height:52px;color:var(--text);font-family:Nunito,Inter Tight,system-ui,-apple-system,sans-serif;font-size:var(--fs-body-lg);font-weight:var(--fw-medium);transition:border-color var(--dur) var(--ease-out-quart), background var(--dur) var(--ease-out-quart), box-shadow var(--dur) var(--ease-out-quart);padding:0 14px;display:block}.form-control::placeholder{color:var(--text-soft)}.form-control:focus,.form-control:focus-visible{border-color:var(--brand-yellow);background:var(--bg-input-focus);outline:none}textarea.form-control{height:auto;min-height:120px;line-height:var(--lh-body);resize:vertical;padding:14px}select.form-control{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='rgba(246,241,232,0.55)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 8 10 12 14 8'/></svg>");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}.field{margin-bottom:18px;display:block}.field .label{font-size:var(--fs-body-sm);font-weight:var(--fw-semibold);color:var(--text-muted);justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.field .form-error{color:#ff7373;font-size:var(--fs-body-sm);font-weight:var(--fw-medium);margin-top:8px;display:block}.field .field.help,.field .help{color:var(--text-soft);font-size:var(--fs-caption);margin-top:6px;display:block}.field.is-invalid .form-control{border-color:#ff737399}.field.is-valid .form-control{border-color:#8cd19173}.checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-body-sm);color:var(--text-muted);align-items:center;gap:12px;display:inline-flex}.checkbox input[type=checkbox]{width:20px;height:20px;accent-color:var(--brand-yellow);cursor:pointer;flex-shrink:0}.btn{border-radius:var(--radius-md);height:48px;font-family:Nunito,Inter Tight,system-ui,-apple-system,sans-serif;font-size:var(--fs-body);font-weight:var(--fw-bold);letter-spacing:var(--tracking-button);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out-quart), background var(--dur) var(--ease-out-quart), border-color var(--dur) var(--ease-out-quart), box-shadow var(--dur) var(--ease-out-quart), color var(--dur) var(--ease-out-quart);border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding-inline:22px;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}@media (hover:hover){.btn:not(:disabled):active{transform:scale(.96)}}.btn.sm{height:36px;font-size:var(--fs-body-sm);padding-inline:14px}.btn.lg{height:54px;font-size:var(--fs-body-lg);font-weight:var(--fw-black);padding-inline:28px}.btn.primary{background:var(--brand-purple);color:var(--text-on-purple);box-shadow:var(--shadow-button-purple)}@media (hover:hover){.btn.primary:not(:disabled):hover{transform:translateY(-1px)}}.btn.secondary{background:var(--bg-overlay-soft);border-color:var(--border-soft);color:var(--text)}@media (hover:hover){.btn.secondary:not(:disabled):hover{background:var(--bg-overlay-soft-hi);border-color:var(--border-soft-hi)}}.btn.ghost{color:var(--text-muted);border-color:var(--border-soft);background:0 0}@media (hover:hover){.btn.ghost:not(:disabled):hover{background:var(--bg-overlay-soft);color:var(--text)}}.btn.yellow{background:var(--brand-yellow);color:var(--text-on-yellow);box-shadow:var(--glow-yellow)}.btn.full{width:100%}.btn .label{display:inline-block}.btn .icon{flex-shrink:0}.tiptap-editor{background:var(--bg-input);border:1px solid var(--border-soft);border-radius:var(--radius);transition:border-color var(--dur) var(--ease-out-quart), background var(--dur) var(--ease-out-quart);display:block;overflow:hidden}.tiptap-editor:focus-within{border-color:var(--brand-yellow);background:var(--bg-input-focus)}.tiptap-editor .toolbar{border-bottom:1px solid var(--border-soft);background:#00000014;gap:4px;padding:8px;display:flex}.tiptap-editor .toolbar button{min-width:32px;height:32px;color:var(--text-muted);font-family:Nunito,Inter Tight,system-ui,-apple-system,sans-serif;font-size:var(--fs-body-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--dur) var(--ease-out-quart), color var(--dur) var(--ease-out-quart), border-color var(--dur) var(--ease-out-quart);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0 10px;display:inline-flex}.tiptap-editor .toolbar button:hover{color:var(--text);background:#ffffff0f}.tiptap-editor .toolbar button.is-active{color:var(--brand-yellow);background:#fcdf2526;border-color:#fcdf2559}.tiptap-editor .content{min-height:180px;color:var(--text);font-family:Nunito,Inter Tight,system-ui,-apple-system,sans-serif;font-size:var(--fs-body-lg);line-height:var(--lh-body);padding:14px}.tiptap-editor .content .ProseMirror{outline:none;min-height:152px}.tiptap-editor .content p{margin:0 0 12px}.tiptap-editor .content ul,.tiptap-editor .content ol{margin:0 0 12px;padding-left:24px}.tiptap-editor .content li{margin-bottom:4px}.tiptap-editor .content a{color:var(--brand-yellow);text-underline-offset:2px;text-decoration:underline}.tiptap-editor .content strong{font-weight:var(--fw-bold)}.tiptap-editor .content em{font-style:italic}textarea.tiptap-hidden{display:none}.topic-create,.topic-show{max-width:760px;margin:32px auto 64px;padding:0 24px}.topic-create .page-header,.topic-show .page-header{margin-bottom:32px}.topic-create .page-header .breadcrumb,.topic-show .page-header .breadcrumb{color:var(--text-soft);font-size:var(--fs-body-sm);margin:0 0 8px}.topic-create .page-header .breadcrumb a,.topic-show .page-header .breadcrumb a{color:var(--text-muted);text-decoration:none}.topic-create .page-header .breadcrumb a:hover,.topic-show .page-header .breadcrumb a:hover{color:var(--text)}.topic-create .page-header h1,.topic-show .page-header h1{font-family:Nunito,Inter Tight,system-ui,-apple-system,sans-serif;font-size:var(--fs-display-md);font-weight:var(--fw-bold);color:var(--text);margin:0}.topic-show .topic-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;display:flex}.topic-show .topic-meta .byline{flex-direction:column;line-height:1.3;display:flex}.topic-show .topic-meta .byline .author{font-weight:var(--fw-semibold);color:var(--text)}.topic-show .topic-meta .byline time{font-size:var(--fs-body-sm);color:var(--text-soft)}.topic-show .topic-meta .badge{font-size:var(--fs-caption);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:2px 8px}.topic-show .topic-meta .badge.pinned{color:var(--brand-yellow);background:#fcdf2526}.topic-show .topic-meta .badge.locked{color:#ff9090;background:#ff73731f}.topic-show .admin-actions{border-radius:var(--radius);background:#fcdf250d;border:1px dashed #fcdf2533;gap:8px;margin:24px 0;padding:12px 16px;display:flex}.topic-show .admin-actions form{margin:0}.topic-show .topic-body{font-size:var(--fs-body-lg);line-height:var(--lh-body);color:var(--text);margin:24px 0}.topic-show .topic-body p{margin:0 0 16px}.topic-show .topic-body ul,.topic-show .topic-body ol{margin:0 0 16px;padding-left:24px}.topic-show .topic-body a{color:var(--brand-yellow);text-underline-offset:2px;text-decoration:underline}.topic-show .topic-body strong{font-weight:var(--fw-bold)}.topic-show .topic-body em{font-style:italic}.topic-show .lock-banner{border-radius:var(--radius);color:#ff9090;font-size:var(--fs-body-sm);text-align:center;background:#ff737314;border:1px solid #ff737340;margin:24px 0;padding:12px 16px}.topic-show .replies{margin-top:32px}.topic-show .replies .section-title{font-size:var(--fs-display-sm);font-weight:var(--fw-bold);color:var(--text);margin:0 0 16px}.topic-show .replies .hint{color:var(--text-soft);font-size:var(--fs-body-sm)}.topic-show .reply{background:var(--bg-input);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px 20px}.topic-show .reply+.reply{margin-top:8px}.topic-show .reply .reply-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.topic-show .reply .reply-head .byline{flex-direction:column;line-height:1.3;display:flex}.topic-show .reply .reply-head .byline .author{font-weight:var(--fw-semibold);color:var(--text)}.topic-show .reply .reply-head .byline time{font-size:var(--fs-caption);color:var(--text-soft)}.topic-show .reply .body{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text)}.topic-show .reply .body p{margin:0 0 12px}.topic-show .reply .body p:last-child{margin-bottom:0}.topic-show .reply .body ul,.topic-show .reply .body ol{margin:0 0 12px;padding-left:24px}.topic-show .reply .body a{color:var(--brand-yellow);text-underline-offset:2px;text-decoration:underline}.topic-show .reply-form-section{margin-top:32px}.topic-show .reply-form-section .section-title{font-size:var(--fs-display-sm);font-weight:var(--fw-bold);color:var(--text);margin:0 0 12px}.topic-show .reply-form-section .actions{justify-content:flex-end;margin-top:16px;display:flex}.topic-create .actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.topic-create .actions .btn.ghost{border:1px solid var(--border-soft);border-radius:var(--radius);height:44px;color:var(--text-muted);font-family:Nunito,Inter Tight,system-ui,-apple-system,sans-serif;font-weight:var(--fw-semibold);transition:border-color var(--dur) var(--ease-out-quart), color var(--dur) var(--ease-out-quart);background:0 0;align-items:center;padding:0 18px;text-decoration:none;display:inline-flex}.topic-create .actions .btn.ghost:hover{border-color:var(--text-soft);color:var(--text)}
