/* Nameframe Designer — inherits the theme's brand tokens (bone/ink/forest/
   clay/brass, Fraunces/Newsreader/Inter Tight) with safe fallbacks so the
   plugin still looks intentional if dropped into another theme. */
.nf-designer {
    --nf-ink: var(--ink, #0F0E0C);
    --nf-bone: var(--bone, #F5F1E7);
    --nf-bone-deep: var(--bone-deep, #ECE5D4);
    --nf-forest: var(--forest, #16493B);
    --nf-clay: var(--clay, #C44827);
    --nf-brass: var(--brass, #A08040);
    --nf-border: rgba(15, 14, 12, 0.14);

    max-width: 560px;
    margin: 0 auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    background: var(--nf-bone);
    border: 1px solid var(--nf-border);
    border-radius: 16px;
    color: var(--nf-ink);
    font-family: var(--font-body, 'Inter Tight', system-ui, sans-serif);
}

.nf-designer .nf-field {
    margin-bottom: 1.1rem;
}

.nf-designer label,
.nf-designer summary {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--nf-forest);
}

.nf-designer summary {
    cursor: pointer;
    list-style: none;
}
.nf-designer summary::-webkit-details-marker { display: none; }
.nf-designer summary::before { content: '+ '; color: var(--nf-brass); }
.nf-designer details[open] summary::before { content: '– '; }

.nf-designer input[type="text"],
.nf-designer select,
.nf-designer textarea {
    width: 100%;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--nf-border);
    border-radius: 8px;
    background: #fff;
    color: var(--nf-ink);
    font-family: inherit;
    font-size: 1rem;
}

.nf-designer input:focus,
.nf-designer select:focus,
.nf-designer textarea:focus {
    outline: none;
    border-color: var(--nf-forest);
    box-shadow: 0 0 0 3px rgba(22, 73, 59, 0.12);
}

.nf-designer .nf-hint {
    margin: 0.3rem 0 0.5rem;
    font-size: 0.85rem;
    color: var(--ink-soft, #5A554C);
}

.nf-designer .nf-submit {
    width: 100%;
    margin-top: 0.4rem;
    cursor: pointer;
}
.nf-designer .nf-submit:disabled {
    opacity: 0.6;
    cursor: progress;
}

.nf-designer .nf-result {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px dashed var(--nf-border);
}

.nf-designer .nf-result__label {
    display: inline-block;
    margin-bottom: 0.6rem;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--nf-brass);
}

.nf-designer .nf-result__text {
    margin: 0 0 1.25rem;
    padding: 1.1rem 1.25rem;
    background: var(--nf-bone-deep);
    border-radius: 10px;
    font-family: var(--font-serif, 'Newsreader', Georgia, serif);
    font-size: 1.2rem;
    line-height: 1.5;
    white-space: pre-wrap;
    color: var(--nf-ink);
}

.nf-designer .nf-regen {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: -0.5rem 0 1.25rem;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--nf-forest);
    opacity: 0.75;
    transition: opacity 150ms ease;
}
.nf-designer .nf-regen:hover { opacity: 1; }
.nf-designer .nf-regen:disabled { opacity: 0.4; cursor: progress; }

.nf-designer .nf-material-options {
    display: flex;
    gap: 0.75rem;
}

.nf-designer .nf-material {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.8rem 1rem;
    border: 1.5px solid var(--nf-border);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 150ms ease, background 150ms ease;
}

.nf-designer .nf-material:has(input:checked) {
    border-color: var(--nf-forest);
    background: rgba(22, 73, 59, 0.06);
}

.nf-designer .nf-material input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nf-designer .nf-material__name {
    font-family: var(--font-serif, 'Newsreader', Georgia, serif);
    font-size: 1.1rem;
    color: var(--nf-ink);
}

.nf-designer .nf-material__price {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 0.8rem;
    color: var(--nf-brass);
}

/* Stack the style options on narrow screens (they overflow in a row). */
@media (max-width: 600px) {
    .nf-designer .nf-material-options {
        flex-direction: column;
    }
}

.nf-designer .nf-error {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: rgba(196, 72, 39, 0.1);
    border: 1px solid rgba(196, 72, 39, 0.3);
    border-radius: 8px;
    color: #8a2c16;
    font-size: 0.92rem;
}
