/* Generic request-form content shared by both the listen and watch dialogs
   (intro text, form layout, inputs, repeatable title-group fields). Generic
   dialog chrome (the modal shell itself) lives in dialogs.css; the
   clone/remove behaviour for repeatable groups lives in
   repeatable-fields.js. */

.modal-intro {
    margin: 0;
    text-align: center;
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.request-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.request-form label {
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.request-form input,
.request-form textarea {
    width: 100%;
    font: inherit;
    color: var(--text-primary);
    background: var(--glass-base);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-md);
    padding: var(--space-xs) var(--space-sm);
}

.request-form textarea {
    resize: none;
}

.request-form .btn {
    align-self: center;
    margin-top: var(--space-xs);
}

/* Repeatable field groups (e.g. multiple titles in one request), cloned by
   repeatable-fields.js when its "+ add another" button is clicked. */
.title-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.title-group + .title-group {
    margin-top: var(--space-sm);
    padding-top: var(--space-sm);
    border-top: 1px solid var(--glass-border);
}

.btn-add,
.btn-remove {
    align-self: flex-start;
    background: none;
    border: none;
    color: var(--text-secondary);
    font: inherit;
    font-size: var(--text-sm);
    cursor: pointer;
    padding: 0;
}

.btn-remove {
    align-self: flex-end;
}

.btn-add:hover,
.btn-remove:hover {
    color: var(--text-primary);
}
