@layer widget {
.nl-form { width:100%; margin-block:1rem; }
.nl-fields { display:flex; flex-wrap:wrap; gap:16px; }
.nl-field { box-sizing:border-box; flex:0 0 auto; min-width:0; margin:0; }
/* Use a percentage grid gap allowance, avoiding cumulative overflow. */
.nl-field { flex-basis:calc(var(--nl-width,100%) - 16px); flex-grow:1; max-width:var(--nl-width,100%); }
.nl-field>label { display:block; margin-bottom:6px; }
.nl-field input:not([type=checkbox]):not([type=radio]),.nl-field textarea,.nl-field select { display:block; box-sizing:border-box; width:100%; min-height:44px; margin-top:6px; padding:10px; color:inherit; background:var(--nl-input-bg,#fff); border:1px solid var(--nl-border,#ccd8d5); border-radius:6px; font:inherit; }
.nl-field textarea { min-height:125px; resize:vertical; }
.nl-field fieldset { margin:0; padding:12px; border:1px solid var(--nl-border,#ccd8d5); border-radius:6px; }
.nl-choice { display:flex; align-items:flex-start; gap:8px; margin-block:8px; font:inherit; }
.nl-choice input { flex:0 0 auto; margin-top:.3em; }
.nl-submit { margin-top:16px; min-height:44px; padding:10px 20px; background:var(--nl-color,#256b61); color:#fff; border:2px solid var(--nl-color,#256b61); border-radius:6px; font:inherit; cursor:pointer; }
.nl-submit:disabled { opacity:.6; cursor:wait; }
.nl-status { margin-block:12px; }
.nl-note { font-size:.85em; }
.nl-honeypot { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip-path:inset(50%); }
.nl-form :focus-visible { outline:3px solid var(--nl-color,#256b61); outline-offset:3px; }
@media (max-width:980.98px) { .nl-field { flex-basis:calc(50% - 8px); max-width:calc(50% - 8px); } .nl-field[style*="100%"] { flex-basis:100%; max-width:100%; } }
@media (max-width:780.98px) { .nl-field { flex-basis:100%; max-width:100%; } }
}
