/* Public form system. Loaded only by portal layouts; admin keeps its own controls. */
:root{--form-height:52px;--form-radius:10px;--form-gap:18px;--form-bg:var(--paper);--form-border:var(--control-border);--form-hover:var(--control-hover);--form-focus:var(--focus);--form-ring:var(--focus-ring);--form-label:var(--ink);--form-placeholder:var(--muted);--form-error:var(--error);--form-error-bg:var(--error-bg);--form-disabled:var(--disabled);--form-shadow:var(--shadow-sm)}

:where(form:not(.language-form):not(.header-signout),.help-search,.dt-container,#location-dialog) :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]),select,textarea){width:100%;min-width:0;max-width:100%;min-height:var(--form-height);padding:12px 14px;border:1px solid var(--form-border);border-radius:var(--form-radius);background:var(--form-bg);color:var(--ink,#18213b);font-family:inherit;font-size:16px;font-weight:450;line-height:1.5;box-shadow:0 1px 2px #17214a04;transition:border-color .14s,box-shadow .14s,background-color .14s;scroll-margin-block:120px 30px;letter-spacing:normal}
:where(form:not(.language-form):not(.header-signout),.help-search,.dt-container,#location-dialog) :is(input,textarea)::placeholder{color:var(--form-placeholder);opacity:1;font-weight:400}
:where(form:not(.language-form):not(.header-signout),.help-search,.dt-container,#location-dialog) :is(input,select,textarea):hover:not(:disabled):not([readonly]){border-color:var(--form-hover)}
:where(form:not(.language-form):not(.header-signout),.help-search,.dt-container,#location-dialog) :is(input,select,textarea):focus{outline:2px solid var(--form-focus);outline-offset:2px;border-color:var(--form-focus);box-shadow:0 0 0 5px var(--form-ring)}
:where(form:not(.language-form):not(.header-signout),.help-search,.dt-container,#location-dialog) :is(input,select,textarea):disabled{background:var(--form-disabled);color:var(--muted);opacity:1;cursor:not-allowed;box-shadow:none}
:where(form:not(.language-form):not(.header-signout)) :is(input,textarea)[readonly]{background:var(--canvas);color:var(--muted)}
:where(form:not(.language-form):not(.header-signout)) textarea{resize:vertical;min-height:136px;overflow-wrap:anywhere}
:where(form:not(.language-form):not(.header-signout),.dt-container) select{padding-inline-end:40px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%23596682' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px;cursor:pointer}
html[data-theme=dark] :where(form:not(.language-form):not(.header-signout),.dt-container) select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%23d1d8eb' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
:where(form:not(.language-form):not(.header-signout)) input:is([type=checkbox],[type=radio]){width:19px;height:19px;min-height:19px;flex:0 0 19px;accent-color:var(--form-focus);vertical-align:middle;cursor:pointer;box-shadow:none;padding:0;border-radius:4px;margin:3px 0 0}
:where(form:not(.language-form):not(.header-signout)) input[type=radio]{border-radius:50%}:where(form:not(.language-form):not(.header-signout)) input[type=range]{width:100%;min-height:44px;accent-color:var(--form-focus);cursor:pointer;padding:0}
:where(form:not(.language-form):not(.header-signout)) input[type=file]{padding:8px;min-height:58px;line-height:2;cursor:pointer;font-size:14px}
:where(form:not(.language-form):not(.header-signout)) input[type=file]::file-selector-button{border:1px solid var(--line);border-radius:7px;background:var(--canvas);color:var(--ink);padding:7px 12px;margin-inline-end:10px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.5;cursor:pointer}
:where(.candidate-form,.auth-form,.contact-form,.employer-list-filters,.search-alert form){gap:var(--form-gap)}
:where(.candidate-form,.auth-form,.contact-form,.employer-list-filters,.search-alert form) label:not(.check-label){display:grid;gap:8px;min-width:0;font-size:14px;font-weight:600;line-height:1.5;color:var(--form-label)}
.jb-label-text{display:block;font-size:14px;line-height:1.5;font-weight:600;color:var(--form-label)}.jb-required{color:var(--form-error);font-size:13px;margin-inline-start:4px;text-decoration:none}
:where(form:not(.language-form):not(.header-signout)) :is(.check-label,.jb-check-label){display:flex!important;align-items:flex-start;gap:10px;min-height:44px;line-height:1.65;font-size:14px;font-weight:400;color:var(--ink);padding-block:8px;cursor:pointer}
.jb-check-copy{display:block;flex:1;min-width:0}.jb-check-copy a{display:inline!important}.candidate-categories{padding:8px 4px;scrollbar-width:thin}.candidate-categories .check-label{padding:8px;gap:10px;border-radius:8px}.candidate-categories .check-label:hover{background:var(--canvas)}
.jb-form :is(.candidate-two,.advanced-grid){gap:18px 20px}.jb-form :is(fieldset,.field){min-width:0}.jb-form fieldset{border:0;padding:0;margin:0;min-width:0}.jb-form fieldset legend{font-size:18px;font-weight:650;color:var(--ink);margin-bottom:18px}.jb-form fieldset:disabled{opacity:1}
:where(form:not(.language-form):not(.header-signout)) :is(.button,button[type=submit]){min-height:52px;border-radius:10px;font-size:15px;font-weight:650;line-height:1.5;position:relative}
.jb-form .button:not(.secondary):not(.danger),.jb-form button[type=submit]:not(.secondary):not(.danger){background:var(--accent-action);border-color:var(--accent-action);color:#fff}.jb-form .button:not(.secondary):not(.danger):hover,.jb-form button[type=submit]:not(.secondary):not(.danger):hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}
.jb-form .button.secondary{background:var(--paper);border-color:var(--form-border);color:var(--link)}.jb-form .button.secondary:hover{background:var(--canvas);border-color:var(--form-focus)}.jb-form .button.danger{background:#a21d3a;color:#fff;border-color:#a21d3a}
.jb-form :is(button,a):focus-visible{outline:2px solid var(--form-focus);outline-offset:3px}.jb-form button:disabled{cursor:wait}.jb-form[aria-busy=true],.employer-space .jb-form[aria-busy=true]{opacity:1}.jb-form[aria-busy=true] button[type=submit],.jb-form[aria-busy=true] button:not([type]){opacity:.75}
.jb-form-status{font-size:13px;line-height:1.5;color:var(--muted);min-height:20px;margin:0;display:flex;align-items:center;gap:8px}.jb-form-status:empty{visibility:hidden}.jb-form-status .jobbol-spinner{width:16px;height:16px;flex:0 0 16px}
.jb-field-error{display:block;margin:6px 0 0;font-size:13px;font-weight:450;line-height:1.5;color:var(--form-error);overflow-wrap:anywhere}.jb-field-error:empty{display:none}.jb-form [aria-invalid=true]:not([type=checkbox]):not([type=radio]){border-color:var(--form-error);box-shadow:0 0 0 1px var(--form-error)}.jb-form [aria-invalid=true]:focus{outline-color:var(--form-error);box-shadow:0 0 0 5px var(--form-ring)}
.jb-form-summary{background:var(--form-error-bg);color:var(--form-error);border:1px solid var(--form-error);border-radius:10px;padding:12px 15px;font-size:14px;line-height:1.6;scroll-margin-top:120px}.jb-form-summary[hidden]{display:none}.jb-form-summary p{color:inherit}.jb-native-success{border-color:var(--success);background:var(--success-bg);color:var(--success)}
.jb-password-control{position:relative;display:block;min-width:0}.jb-password-control input{padding-inline-end:76px!important}.jb-password-toggle{position:absolute;inset-inline-end:6px;top:4px;min-width:60px;min-height:44px;border:0;border-radius:7px;background:transparent;color:var(--link);font-size:13px;font-weight:600;padding:8px;line-height:1.4;cursor:pointer}.jb-password-toggle:hover{background:var(--canvas)}.jb-password-toggle:disabled{opacity:.6}.jb-caps-note,.jb-password-hint,.jb-file-meta{font-size:12px;font-weight:400;color:var(--muted);line-height:1.6;margin:5px 0 0;overflow-wrap:anywhere}.jb-password-hint.is-complete{color:var(--success)}
.candidate-auth{align-items:start;gap:clamp(28px,6vw,78px);padding-block:48px}.candidate-auth>.candidate-panel{border-radius:16px;padding:32px;box-shadow:var(--form-shadow);margin-bottom:0}.candidate-panel,.support-card{box-shadow:var(--form-shadow)}.candidate-steps{gap:12px;margin-bottom:28px;line-height:1.5;font-size:12px}.candidate-steps li{position:relative;padding-bottom:12px;min-width:0}.candidate-steps .current{border-color:#cd29c0;color:var(--link)}.candidate-steps .is-complete{border-color:var(--success);color:var(--success)}.signup-email-fields{display:grid;gap:18px}.signup-status:empty{display:none}
.jb-form .suggestions{margin:6px 0 0;border:1px solid var(--form-border);border-radius:10px;background:var(--paper);box-shadow:var(--shadow-md);max-height:min(320px,45vh);overflow-y:auto;overscroll-behavior:contain;z-index:30}.jb-form .suggestions button{font-size:15px;min-height:48px;white-space:normal;line-height:1.5;color:var(--ink);background:var(--paper);padding:12px 14px;display:block;width:100%;text-align:left;position:static;border:0;border-radius:0}.jb-form .suggestions button:is(:hover,:focus-visible),.jb-form .suggestions .active button{background:var(--canvas);color:var(--link);outline-offset:-2px}
#job-search{--form-height:58px;padding:26px 28px;border-radius:16px;background:var(--paper);box-shadow:var(--form-shadow);overflow:visible;color:var(--ink)}#job-search .search-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(170px,auto);gap:18px;align-items:end}#job-search .field>label{margin:0 0 8px;font-size:14px;line-height:1.5;color:var(--form-label)}#job-search .input-wrap{position:relative;min-width:0}#job-search .input-wrap>.icon{position:absolute;inset-inline-start:16px;top:18px;transform:none;pointer-events:none;color:var(--form-focus);width:21px;height:21px}#job-search .input-wrap>input[data-autocomplete]{min-height:58px;padding:14px 15px 14px 48px;border-color:var(--form-border);color:var(--ink);font-size:16px;font-weight:650}#job-search .input-wrap>input[data-autocomplete]::placeholder{font-weight:400;color:var(--form-placeholder)}#job-search .search-submit{height:58px;min-height:58px;margin:0;border-radius:10px;font-size:16px}#job-search .advanced{margin:20px 0 0}#job-search .advanced>summary{display:flex;align-items:center;gap:9px;width:fit-content;color:var(--link);font-size:14px;font-weight:600;min-height:44px;padding:0;cursor:pointer;list-style:none}#job-search .advanced>summary::-webkit-details-marker{display:none}#job-search .advanced .advanced-grid{margin:18px -28px -26px;padding:24px 28px;background:var(--canvas);border-top:1px solid var(--line);border-radius:0 0 16px 16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 20px}#job-search .advanced:not([open]) .advanced-grid{display:none}#job-search .advanced-grid .search-help{grid-column:1/-1;margin:0}#job-search .advanced-grid .radius-label{align-content:start}#job-search .advanced-grid input[type=range]{min-height:44px;margin-top:3px}html[data-theme=dark] #job-search .advanced .advanced-grid{background:var(--canvas)}html[data-theme=dark] #job-search .input-wrap>input[data-autocomplete]{color:var(--ink);background:var(--form-bg)}
:where(.dt-container) :is(input,select){min-height:44px;font-size:16px!important;border-radius:9px!important;border-color:var(--form-border)!important;background-color:var(--form-bg)!important;color:var(--ink)!important}.candidate-panel .dt-container .dt-search input{max-width:230px}.candidate-panel .dt-container .dt-length select{min-width:78px}
@media(max-width:760px){.candidate-auth{grid-template-columns:1fr;padding-block:28px;gap:24px}.candidate-auth>.candidate-panel{padding:24px}.candidate-two,.jb-form .candidate-two{grid-template-columns:1fr}.jb-form .button-row{gap:12px}.jb-form .button-row>.button{flex:1 1 160px}.jb-form>.button,.signup-email-fields>.button{width:100%;justify-self:stretch}#job-search .search-main{grid-template-columns:1fr}#job-search .search-submit{width:100%}#job-search .advanced .advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.candidate-steps{font-size:12px;gap:10px}}
@media(max-width:480px){.candidate-auth>.candidate-panel,.candidate-panel,.support-card{padding:20px}#job-search{padding:20px;border-radius:14px}#job-search .advanced .advanced-grid{grid-template-columns:1fr;margin:16px -20px -20px;padding:20px;border-radius:0 0 14px 14px}.employer-list-filters{flex-direction:column;align-items:stretch}.employer-list-filters label{width:100%;min-width:0}.candidate-steps{font-size:11px;gap:8px}.jb-form :is(input,select,textarea){font-size:16px}.jb-form .button-row>.button{flex-basis:100%}.candidate-panel .dt-container .dt-search input{max-width:180px}}
@media(prefers-reduced-motion:reduce){:where(form:not(.language-form):not(.header-signout)) :is(input,select,textarea,button){transition:none!important}.jb-form-status .jobbol-spinner{animation:none!important}}

label:has(.jb-password-hint)+small{display:none}.header-tools form select{width:66px;min-height:40px;padding:7px 26px 7px 10px;font-size:12px;border-radius:8px;background-position:right 6px center;background-size:16px}.header-tools form{margin:0}

#job-search .search-help{color:var(--muted)}.jb-form :is(input,select,textarea){font-variant-numeric:normal}.jb-form [data-field-error]:empty{display:none}.jb-form :is(.check-label,.jb-check-label) input:disabled{cursor:not-allowed}@media(max-width:700px){.header-tools form select{font-size:16px;width:72px;min-height:44px}}
