/* Shared controls for public/member forms. No global or administration selectors. */
form.ca-user-form {
 --uf-primary:#1f4e5f; --uf-primary-dark:#163946; --uf-success:#176b5b;
 --uf-ink:#25343b; --uf-muted:#5d6b72; --uf-line:#afbec4; --uf-danger:#a32929;
 color:var(--uf-ink); min-width:0; letter-spacing:0;
}
form.ca-user-form :is(input,select,textarea,button,label,.btn) { box-sizing:border-box; letter-spacing:0; }
form.ca-user-form :is(.form-control,.form-select,.ca-input,.ca-select,select:not([class])) {
 min-height:46px; border:1px solid var(--uf-line); border-radius:6px !important;
 padding:10px 12px; font-size:16px; line-height:1.5; color:var(--uf-ink);
 background-color:#fff; max-width:100%;
}
form.ca-user-form textarea { min-height:120px; resize:vertical; }
form.ca-user-form :is(.password-wrapper,.ca-input-wrap,.ca-password-wrap,.flow-password) input { padding-right:52px; }
form.ca-user-form .ca-input-wrap .ca-input-icon ~ input { padding-left:44px; }
form.ca-user-form :is(input[type=search],.ca-search-v3-select,.ca-search-company-select),
form.ca-user-form:is(.ca-search-v3-form,.ca-search-company-form) .cat-wrap select.form-select {
 height:46px !important; min-height:46px !important; border:1px solid var(--uf-line);
 border-radius:6px !important; font-size:16px !important; line-height:1.5; background-color:#fff; color:var(--uf-ink);
}
form.ca-user-form :is(.ca-search-input,.ca-search-v3-input,.ca-search-company-input) { padding:10px 12px 10px 44px; }
form.ca-user-form:is(.ca-search-v3-form,.ca-search-company-form) .cat-wrap select.form-select { padding:10px 36px 10px 12px !important; border-width:1px !important; }
form.ca-user-form :is(input,textarea)::placeholder { color:#69777e; opacity:1; }
form.ca-user-form :is(.form-control,.form-select,.ca-input,.ca-select):focus {
 border-color:var(--uf-primary); box-shadow:0 0 0 3px #1f4e5f18;
}
form.ca-user-form :is(input,select,textarea,button,a):focus-visible {
 outline:3px solid #d9a72f; outline-offset:3px;
}
form.ca-user-form :is(.form-label,.ca-label) { display:block; margin-bottom:8px; font-size:14px; line-height:1.5; font-weight:600; color:var(--uf-ink); }
form.ca-user-form :is(.form-text,.ca-field-help,.ca-field-note,.ca-help,.ca-small-note) {
 font-size:13px; line-height:1.5; color:var(--uf-muted); overflow-wrap:anywhere;
}
form.ca-user-form .btn {
 min-height:46px; border-radius:6px !important; padding:10px 16px;
 display:inline-flex; align-items:center; justify-content:center; gap:8px;
 font-size:14px; font-weight:600; line-height:1.5; text-align:center;
 text-transform:none; white-space:normal; letter-spacing:0; box-shadow:none; max-width:100%;
}
form.ca-user-form .btn i { flex-shrink:0; }
form.ca-user-form .btn-primary { color:#fff; background:var(--uf-primary); border-color:var(--uf-primary); }
form.ca-user-form .btn-primary:hover { color:#fff; background:var(--uf-primary-dark); border-color:var(--uf-primary-dark); }
form.ca-user-form .btn-outline-primary { color:var(--uf-primary); background:#fff; border:1px solid var(--uf-primary); }
form.ca-user-form .btn-outline-primary:hover { color:#fff; background:var(--uf-primary); }
form.ca-user-form :is(.btn-light,.btn-outline-secondary) { color:var(--uf-ink); background:#fff; border:1px solid var(--uf-line); }
form.ca-user-form :is(.btn-light,.btn-outline-secondary):hover { background:#eef4f6; }
form.ca-user-form .btn-success { color:#fff; background:var(--uf-success); border-color:var(--uf-success); }
form.ca-user-form .btn-warning { color:#322709; background:#f2c45b; border-color:#ddb047; }
form.ca-user-form .btn-warning:hover { color:#322709; background:#e6b645; border-color:#c69b36; }
form.ca-user-form .btn-link { color:var(--uf-primary); }
form.ca-user-form :is(.btn-sm,.btn-link) { min-height:36px; padding:6px 10px; font-size:13px; }
form.ca-user-form :is(.btn,.form-control,.form-select,.ca-input,.ca-select):disabled { opacity:.65; cursor:not-allowed; }
form.ca-user-form :is(input,select,textarea):disabled { background-color:#f1f4f5; }
form.ca-user-form input:is([type=checkbox],[type=radio]) { accent-color:var(--uf-primary); flex-shrink:0; }
form.ca-user-form .form-check-input { width:18px; height:18px; margin-top:3px; }
form.ca-user-form .form-check-input:checked { background-color:var(--uf-primary); border-color:var(--uf-primary); }
form.ca-user-form .form-check-label { line-height:1.5; font-weight:400; }
form.ca-user-form .form-check { min-height:26px; }
form.ca-user-form input[type=file] { height:auto; padding:8px; font-size:14px; }
form.ca-user-form input[type=file]::file-selector-button { border:0; background:#eef4f6; color:var(--uf-primary); padding:6px 10px; margin-right:10px; border-radius:4px; cursor:pointer; }
form.ca-user-form :is(.input-group-text,.input-group .btn) { border-radius:6px; }
form.ca-user-form .input-group > :is(.form-control,.form-select) { width:1%; min-width:0; flex:1 1 auto; }
form.ca-user-form .input-group-text { max-width:50%; white-space:normal; overflow-wrap:anywhere; font-size:13px; padding:8px; }
form.ca-user-form .input-group > :not(:last-child) { border-top-right-radius:0 !important; border-bottom-right-radius:0 !important; }
form.ca-user-form .input-group > :not(:first-child) { border-top-left-radius:0 !important; border-bottom-left-radius:0 !important; }
form.ca-user-form :is(.toggle-pass,.ca-password-toggle,.flow-icon-button) { display:inline-flex; align-items:center; justify-content:center; min-width:40px; min-height:40px; }
form.ca-user-form :is(.invalid-feedback,.ca-error,.ca-err,.uf-error,.flow-error) { font-size:13px; line-height:1.5; color:var(--uf-danger); }
form.ca-user-form .uf-error { display:block; margin:6px 0 0; }
form.ca-user-form .uf-error[hidden] { display:none; }
form.ca-user-form [aria-invalid=true] { border-color:var(--uf-danger) !important; }
form.ca-user-form .uf-invalid .invalid-feedback { display:none !important; }
form.ca-user-form .uf-summary { border-left:3px solid var(--uf-danger); background:#fff3f2; color:var(--uf-danger); padding:10px 14px; margin-bottom:20px; font-size:14px; }
form.ca-user-form .uf-summary[hidden] { display:none; }
form.ca-user-form .uf-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:575px) {
 form.ca-user-form .btn { overflow-wrap:anywhere; }
 form.ca-user-form :is(.ca-actions,.form-actions,.ca-form-actions) { flex-wrap:wrap; }
}
