/* Extracted from pages/contribute.html */
.contrib-layout { display: flex; gap: 1.5rem; max-width: 1100px; margin: 0 auto; padding: 0 1.5rem 4rem; }
.contrib-main { flex: 1; min-width: 0; }
.contrib-sidebar { width: 340px; flex-shrink: 0; }
.wizard-step { border: 2px solid var(--border); display: none; }
.wizard-step.active { display: block; }
.wizard-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; border-bottom: 2px solid var(--border); background: var(--surface-2); }
.wizard-step-label { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-faint); }
.wizard-body { padding: 1.5rem; }
.source-entry { border: 1px solid var(--border); padding: 1rem; margin-bottom: 0.75rem; }
.preview-pane { border: 2px solid var(--border); background: var(--surface-2); padding: 1.25rem; font-family: var(--font-mono); font-size: 0.78rem; line-height: 1.6; white-space: pre-wrap; word-break: break-word; max-height: 340px; overflow-y: auto; }
.slider-mini { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; }
.slider-mini label { width: 210px; flex-shrink: 0; font-size: 0.8rem; margin-bottom: 0; }
.slider-mini .sv { font-family: var(--font-mono); font-size: 0.85rem; width: 24px; text-align: right; }
.dim-section-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-faint); margin: 1rem 0 0.5rem; padding-bottom: 0.25rem; border-bottom: 1px solid var(--border); }
.step-nav { display: grid; grid-template-columns: repeat(5, 1fr); border: 2px solid var(--border); border-bottom: none; }
.sn-item { padding: 0.6rem; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-faint); text-align: center; border-right: 2px solid var(--border); }
.sn-item:last-child { border-right: none; }
.sn-item.active { background: var(--surface); color: var(--text); }
.sn-item.done { background: var(--surface-2); color: var(--text-dim); }
.score-summary { border: 2px solid var(--border); padding: 1rem; margin: 1rem 0; font-family: var(--font-mono); font-size: 0.82rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.score-summary .score-big { font-size: 1.8rem; font-weight: 800; grid-column: 1 / -1; text-align: center; }
.score-summary .score-label { font-size: 0.7rem; color: var(--text-faint); text-transform: uppercase; }
.chat-panel { border: 2px solid var(--border); display: flex; flex-direction: column; height: 500px; position: sticky; top: 1rem; }
.chat-header { padding: 0.75rem 1rem; background: var(--surface-2); border-bottom: 2px solid var(--border); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; display: flex; justify-content: space-between; align-items: center; }
.chat-messages { flex: 1; overflow-y: auto; padding: 1rem; font-size: 0.82rem; line-height: 1.5; }
.chat-msg { margin-bottom: 1rem; }
.chat-msg.user { text-align: right; }
.chat-msg.user .chat-bubble { background: var(--surface-2); display: inline-block; padding: 0.5rem 0.75rem; text-align: left; max-width: 90%; }
.chat-msg.assistant .chat-bubble { background: var(--bg-card); border: 1px solid var(--border); padding: 0.5rem 0.75rem; max-width: 90%; white-space: pre-wrap; }
.chat-input-row { display: flex; border-top: 2px solid var(--border); }
.chat-input-row input { flex: 1; border: none; padding: 0.6rem 0.75rem; background: transparent; color: var(--text); font-family: var(--font-mono); font-size: 0.82rem; outline: none; }
.chat-input-row button { border: none; border-left: 2px solid var(--border); padding: 0.6rem 1rem; background: var(--surface-2); color: var(--text); cursor: pointer; font-size: 0.82rem; }
.chat-input-row button:hover { background: var(--surface); }
.suggested-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin: 0.75rem 0; }
.suggested-card { border: 1px solid var(--border); padding: 0.5rem 0.75rem; cursor: pointer; font-size: 0.78rem; transition: background 0.15s; }
.suggested-card:hover { background: var(--surface-2); }
.suggested-card .sg-name { font-weight: 700; }
.suggested-card .sg-cat { font-size: 0.68rem; color: var(--text-faint); text-transform: uppercase; }
.wallet-row { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.5rem; }
.wallet-status { font-family: var(--font-mono); font-size: 0.78rem; color: var(--text-dim); }
.bounty-info { border: 1px solid var(--border); padding: 0.75rem 1rem; margin: 1rem 0; font-size: 0.82rem; background: var(--surface-2); }
.bounty-info strong { color: var(--text); }
.submit-result { border: 2px solid var(--border); padding: 2rem; text-align: center; display: none; }
.submit-result.show { display: block; }
.submit-result h2 { margin-bottom: 0.75rem; }
.submit-result p { color: var(--text-dim); font-size: 0.9rem; margin-bottom: 1rem; }
.dup-warning { border: 2px solid var(--orange, #f90); padding: 0.75rem 1rem; margin: 0.5rem 0; font-size: 0.82rem; display: none; }
.dup-warning.show { display: block; }
@media (max-width: 800px) {
    .contrib-layout { flex-direction: column; }
    .contrib-sidebar { width: 100%; }
    .chat-panel { height: 350px; position: static; }
    .step-nav { grid-template-columns: 1fr 1fr 1fr; }
    .sn-item:nth-child(4), .sn-item:nth-child(5) { border-top: 2px solid var(--border); }
    .sn-item:nth-child(3) { border-right: none; }
    .sn-item:nth-child(5) { border-right: none; }
}
