/* PantryPrep — recipe detail, search filters, and repeating line rows. */

.filters {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin: 0 0 1.5rem;
}

.filters__field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.filters__field label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--ink-soft);
}

.filters__field input {
    padding: 0.45rem 0.7rem;
    font: inherit;
    font-size: 0.92rem;
    border: 1px solid var(--rule-strong);
    border-radius: var(--radius);
    background: #FFFFFF;
    min-width: 14rem;
}

.filters__field input:focus {
    border-color: var(--herb);
    outline: 2px solid var(--herb-wash);
}

/* ---------- recipe detail ---------- */

.factgrid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2.5rem;
    margin: 0 0 1.25rem;
    padding: 1rem 1.25rem;
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}

.factgrid__item { margin: 0; }

.factgrid dt {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink-soft);
    margin-bottom: 0.15rem;
}

.factgrid dd {
    margin: 0;
    font-family: var(--serif);
    font-size: 1.15rem;
}

.taglist {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin: 0 0 1.5rem;
}

.section { margin-top: 2.25rem; }

.section h2 {
    font-family: var(--serif);
    font-size: 1.3rem;
    margin: 0 0 0.85rem;
}

.prose {
    max-width: 68ch;
    white-space: pre-wrap;
    margin: 0;
}

.empty--tight { padding: 1.5rem; }

/* ---------- wider forms ---------- */

.form--wide { max-width: 52rem; }

.fieldrow {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.fieldrow .field { flex: 1 1 8rem; }

.form textarea {
    width: 100%;
    padding: 0.6rem 0.75rem;
    font: inherit;
    color: var(--ink);
    background: #FFFFFF;
    border: 1px solid var(--rule-strong);
    border-radius: var(--radius);
    resize: vertical;
}

.form textarea:focus {
    border-color: var(--herb);
    outline: 2px solid var(--herb-wash);
}

.table td .badge { margin-right: 0.25rem; }

/* ---------- repeating ingredient rows ---------- */

.lines {
    border: 1px solid var(--rule);
    border-radius: var(--radius-lg);
    background: var(--surface);
    padding: 1.1rem 1.25rem 1.25rem;
    margin: 0 0 1.15rem;
}

.lines legend {
    font-family: var(--serif);
    font-size: 1.15rem;
    padding: 0 0.4rem;
}

.lines__hint { margin-top: 0; }

.lines__rows { margin-bottom: 0.9rem; }

.lineitem {
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--rule);
}

.lineitem:last-child { border-bottom: 0; }

.lineitem__grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) 6.5rem 6rem minmax(0, 2fr) auto;
    gap: 0.6rem;
    align-items: center;
}

.lineitem__cell { min-width: 0; }

.lineitem__cell input,
.lineitem__cell select {
    width: 100%;
    padding: 0.5rem 0.65rem;
    font: inherit;
    font-size: 0.92rem;
    color: var(--ink);
    background: #FFFFFF;
    border: 1px solid var(--rule-strong);
    border-radius: var(--radius);
}

.lineitem__cell input:focus,
.lineitem__cell select:focus {
    border-color: var(--herb);
    outline: 2px solid var(--herb-wash);
}

.lineitem__cell--action { text-align: right; }

.lineitem .field__error { margin-left: 0.1rem; }

@media (max-width: 46rem) {
    .lineitem__grid { grid-template-columns: 1fr 1fr; }
    .lineitem__cell--wide { grid-column: 1 / -1; }
    .lineitem__cell--action { grid-column: 1 / -1; text-align: left; }
}
