.ln-dialog {
    box-sizing: border-box;
    width: min(40rem, calc(100% - 2rem));
    max-height: calc(100dvh - 2rem);
    overflow: auto;
    margin: auto;
    padding: clamp(1rem, 4vw, 2rem);
    border: 0;
    border-radius: 12px;
    color: #222;
    background: #fff;
    box-shadow: 0 16px 64px #0004;
}

.ln-dialog::backdrop { background: #0008; }
.ln-dialog h2 { margin: 0 3rem 1rem 0; }
.ln-form, .ln-field, .ln-product-choice { display: grid; gap: .5rem; }
.ln-form { gap: 1rem; color: inherit; }
.ln-form fieldset, .ln-quiz fieldset { min-width: 0; margin: 0; }
.ln-form legend, .ln-quiz legend { font-size: inherit; color: inherit; }
.ln-choice, .ln-consent { display: flex; align-items: flex-start; gap: .5rem; font-weight: normal; }
.ln-form input:not([type="checkbox"]):not([type="radio"]), .ln-form textarea, .ln-form select {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: .55rem .65rem;
    border: 1px solid #a3a3a3;
    border-radius: 5px;
    color: #222;
    background: #fff;
    font: inherit;
}
.ln-form textarea { min-height: 6rem; resize: vertical; }
.ln-form-trap { display: none !important; }
.ln-button {
    justify-self: start;
    padding: .6rem 1rem;
    border: 1px solid transparent;
    border-radius: 5px;
    color: #fff;
    background: var(--ln-accent, #0467a6);
    font: inherit;
    cursor: pointer;
}
.ln-button:disabled { opacity: .65; cursor: wait; }
.ln-dialog-close { position: absolute; top: .8rem; right: .8rem; font-size: 1.4rem; line-height: 1; }
.ln-form-status { min-height: 1.5em; margin: 0; }
.ln-quiz-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-block: 1rem; }
.ln-quiz > .ln-button { margin-block: .75rem; }
