/* Job Board - the sign-up form (its own page, or [job-board-signup /] in any page) and confirm-email page.
   Loaded on every page, so every rule is under .jb-card / .jb-join. Colours come from the site's theme. */
.jb-join { max-width: 34rem; margin: 2.5rem auto; padding: 0 16px; }
.jb-card { max-width: 34rem; border: 1px solid var(--dm-border, rgba(127, 127, 127, .3)); border-radius: 10px; padding: 1.5rem; background: var(--dm-surface, transparent); }
.jb-card h1, .jb-card h2 { margin: 0 0 1rem; font-size: 1.6rem; }
.jb-form { display: grid; gap: .9rem; }
.jb-form label { display: grid; gap: .3rem; font-weight: 600; }
.jb-form input:not([type=radio]) { width: 100%; padding: .55rem .7rem; border: 1px solid var(--dm-border, rgba(127, 127, 127, .45)); border-radius: 6px; font: inherit; background: transparent; color: inherit; }
.jb-form small { font-weight: 400; opacity: .75; }
.jb-types { border: 0; margin: 0; padding: 0; display: grid; gap: .5rem; }
.jb-card .jb-types.is-single { display: none; }
.jb-types legend { font-weight: 600; margin-bottom: .4rem; }
.jb-choice { display: flex !important; grid-template-columns: none; gap: .6rem; align-items: flex-start; font-weight: 400 !important;
    border: 1px solid var(--dm-border, rgba(127, 127, 127, .3)); border-radius: 8px; padding: .6rem .75rem; cursor: pointer; }
.jb-choice:has(input:checked) { border-color: var(--dm-primary, #2563eb); }
.jb-choice span { display: grid; }
.jb-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.jb-card .jb-msg:empty { display: none; }
.jb-card .jb-msg.is-bad { color: var(--dm-danger, #c0392b); }
.jb-card .jb-done { display: grid; gap: 1rem; justify-items: start; }
.jb-card .jb-alt { margin: 1rem 0 0; }
.jb-card [hidden] { display: none !important; }
