.jrnf { --jrnf-gap: 1rem; --jrnf-accent: #1d4ed8; --jrnf-error: #b91c1c; --jrnf-border: #6b7280; --jrnf-radius: 4px; }
.jrnf-fields { display: flex; flex-wrap: wrap; gap: var(--jrnf-gap); }
.jrnf-field { flex: 1 1 100%; min-width: 0; }
.jrnf-half { flex: 1 1 calc(50% - var(--jrnf-gap)); }
@media (max-width: 640px) { .jrnf-half { flex-basis: 100%; } }
.jrnf-label { display: block; font-weight: 600; margin-bottom: .25rem; }
.jrnf input[type=text], .jrnf input[type=email], .jrnf input[type=tel], .jrnf input[type=number],
.jrnf input[type=date], .jrnf select, .jrnf textarea {
  width: 100%; box-sizing: border-box; padding: .6rem .7rem; border: 1px solid var(--jrnf-border);
  border-radius: var(--jrnf-radius); font: inherit;
}
.jrnf :focus-visible { outline: 2px solid var(--jrnf-accent); outline-offset: 2px; }
.jrnf-group { border: 0; padding: 0; margin: 0; }
.jrnf-choice { display: flex; gap: .5rem; align-items: flex-start; margin: .25rem 0; }
.jrnf-req, .jrnf-error { color: var(--jrnf-error); }
.jrnf-has-error input, .jrnf-has-error select, .jrnf-has-error textarea { border-color: var(--jrnf-error); }
.jrnf-help { font-size: .9em; opacity: .8; margin: .25rem 0 0; }
.jrnf-error { font-size: .9em; margin: .25rem 0 0; }
.jrnf-summary { border-left: 4px solid var(--jrnf-error); padding: .5rem .75rem; margin-bottom: var(--jrnf-gap); }
.jrnf-submit { margin-top: var(--jrnf-gap); padding: .7rem 1.4rem; background: var(--jrnf-accent); color: #fff; border: 0; border-radius: var(--jrnf-radius); cursor: pointer; font: inherit; }
.jrnf-submit[disabled] { opacity: .6; cursor: progress; }
.jrnf-notice:empty { display: none; }
.jrnf-notice { margin-top: var(--jrnf-gap); padding: .75rem; border-radius: var(--jrnf-radius); }
.jrnf-notice-success { background: #ecfdf5; color: #065f46; }
.jrnf-notice-error { background: #fef2f2; color: var(--jrnf-error); }
.jrnf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
