.om-reg-form label { display:block; font-size:0.75rem; font-weight:600; text-transform:uppercase; letter-spacing:0.04em; color:var(--om-muted); margin-bottom:0.35rem; }
.om-reg-form label .req { color: #dc2626; }
.om-reg-form input, .om-reg-form select, .om-reg-form textarea {
    width:100%; padding:0.5rem 0.65rem; border-radius:0.5rem; border:1px solid var(--om-border);
    background:var(--om-input-bg); color:var(--om-input-fg); font-size:0.9rem; box-sizing:border-box;
}
.om-reg-form input:focus, .om-reg-form select:focus, .om-reg-form textarea:focus {
    outline:none; border-color:var(--om-primary); box-shadow:0 0 0 3px rgba(237,153,29,0.28);
}
.om-reg-form textarea { min-height:80px; resize:vertical; }
.om-reg-grid { display:grid; gap:1rem; grid-template-columns:1fr; }
@media (min-width:640px) { .om-reg-grid-2 { grid-template-columns:1fr 1fr; } }

/* Address: region fields first so autocomplete opens over street rows; focus raises stacking so one list covers the other */
.om-reg-form .om-reg-field--ac { position: relative; z-index: 1; }
.om-reg-form .om-reg-field--ac:focus-within { z-index: 10; }
.om-alert { padding:0.85rem 1rem; border-radius:0.5rem; margin-bottom:1rem; font-size:0.9rem; }
.om-alert-error { background:#fef2f2; border:1px solid #fecaca; color:#991b1b; }
.om-alert-success { background:#f0fdf4; border:1px solid #bbf7d0; color:#166534; }
.om-ac-list { position:absolute; left:0; right:0; top:100%; z-index:80; background:var(--om-input-bg,#fff); border:1px solid var(--om-border,#d1d5db); border-radius:0 0 0.5rem 0.5rem; max-height:220px; overflow-y:auto; display:none; box-shadow:0 4px 12px rgba(0,0,0,.12); }
.om-ac-list.open { display:block; }
.om-ac-item { padding:0.45rem 0.65rem; cursor:pointer; font-size:0.88rem; color:var(--om-input-fg,#111); }
.om-ac-item:hover, .om-ac-item.active { background:rgba(237,153,29,0.12); }
.om-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; }
.om-reg-invalid > input:not([type="checkbox"]):not([type="hidden"]),
.om-reg-invalid > select,
.om-reg-invalid > textarea { border-color:#dc2626 !important; }
.om-reg-error-msg { display:none; font-size:0.8rem; color:#b91c1c; margin-top:0.35rem; }
.om-reg-field-wrap.om-reg-invalid .om-reg-error-msg { display:block; }
.om-reg-hint { display:block; font-size:0.75rem; color:var(--om-muted,#6b7280); margin-top:0.3rem; line-height:1.45; letter-spacing:0.005em; }
.om-reg-hint code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:0.72rem; background:rgba(12,25,41,0.05); border:1px solid rgba(12,25,41,0.08); border-radius:0.25rem; padding:0.05rem 0.35rem; color:var(--om-navy,#0c1929); font-weight:600; letter-spacing:0.02em; }
.om-cat-picker { margin-top:0.25rem; }
.om-cat-help { font-size:0.88rem; color:var(--om-navy,#0c1929); font-weight:600; margin:0 0 0.35rem; line-height:1.45; }
.om-cat-sub { font-size:0.8rem; color:var(--om-muted); font-weight:500; margin:0 0 1.15rem; line-height:1.5; }
.om-char-count {
    margin:0.45rem 0 0;
    font-size:0.8125rem;
    line-height:1.4;
    font-weight:500;
    font-variant-numeric: tabular-nums;
    letter-spacing:0.01em;
    color:var(--om-muted, #64748b);
}
.om-char-count--end {
    text-align: right;
    font-size: 0.7rem;
}
.om-char-count--warn { color:#b45309; }
.om-char-count--max { color:#b91c1c; font-weight:600; }
.om-cat-chips {
    display:grid; grid-template-columns:repeat(2,1fr); gap:0.65rem;
}
@media (min-width:480px) { .om-cat-chips { grid-template-columns:repeat(3,1fr); } }
@media (min-width:768px) { .om-cat-chips { grid-template-columns:repeat(4,1fr); } }
.om-cat-chip { cursor:pointer; margin:0; position:relative; }
.om-cat-chip .om-cat-cb { position:absolute; opacity:0; width:1px; height:1px; margin:0; }
.om-cat-chip-inner {
    display:flex; align-items:center; justify-content:center;
    min-height:3rem; padding:0.6rem 1rem;
    border:2px solid var(--om-border); border-radius:0.6rem; background:var(--om-surface,#fff);
    font-size:0.82rem; font-weight:600; color:var(--om-navy,#0c1929);
    transition:all 0.2s cubic-bezier(0.16,1,0.3,1);
    box-shadow:0 2px 8px rgba(12,25,41,0.04);
    text-align:center; position:relative;
}
.om-cat-chip:hover .om-cat-chip-inner {
    border-color:rgba(237,153,29,0.5); background:rgba(237,153,29,0.04);
    transform:translateY(-2px); box-shadow:0 6px 20px rgba(12,25,41,0.08);
}
.om-cat-cb:focus + .om-cat-chip-inner { outline:2px solid var(--om-primary); outline-offset:2px; }
.om-cat-cb:checked + .om-cat-chip-inner {
    border-color:var(--om-primary); background:rgba(237,153,29,0.12); color:var(--om-navy,#0c1929);
    box-shadow:0 0 0 1px var(--om-primary), 0 4px 16px rgba(237,153,29,0.15);
    transform:translateY(-2px);
}

/* Step 4 — mining sites: responsive columns, cards, optional sub-locations */
.om-site-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:1.25rem;
    align-items:start;
}
@media (min-width:520px) {
    .om-site-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem 1.25rem; }
}
@media (min-width:900px) {
    .om-site-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
.om-site-column {
    display:flex;
    flex-direction:column;
    gap:0.85rem;
    min-width:0;
}
.om-reg-form label.om-site-card {
    display:block;
    position:relative;
    margin:0;
    cursor:pointer;
    font-size:inherit;
    font-weight:inherit;
    text-transform:none;
    letter-spacing:normal;
    color:inherit;
}
.om-site-card .om-site-cb {
    position:absolute;
    opacity:0;
    width:1px;
    height:1px;
    margin:0;
}
.om-site-card__inner {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:3.5rem;
    padding:0.65rem 1rem;
    border:2px solid var(--om-border);
    border-radius:0.6rem;
    background:var(--om-surface, #fff);
    box-shadow:0 2px 8px rgba(12, 25, 41, 0.04);
    text-align:center;
    transition:all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.om-site-card:hover .om-site-cb:not(:checked) + .om-site-card__inner {
    border-color:rgba(237, 153, 29, 0.5);
    background:rgba(237, 153, 29, 0.04);
    transform:translateY(-2px);
    box-shadow:0 6px 20px rgba(12, 25, 41, 0.08);
}
.om-site-cb:focus + .om-site-card__inner {
    outline:2px solid var(--om-primary);
    outline-offset:2px;
}
.om-site-cb:checked + .om-site-card__inner {
    border-color:var(--om-primary);
    background:rgba(237, 153, 29, 0.12);
    box-shadow:0 0 0 1px var(--om-primary), 0 4px 16px rgba(237, 153, 29, 0.15);
    transform:translateY(-2px);
}
.om-site-card__name {
    font-size:0.82rem;
    font-weight:600;
    line-height:1.35;
    letter-spacing:0.04em;
    color:var(--om-navy, #0c1929);
    text-transform:uppercase;
}
.om-site-cb:checked + .om-site-card__inner .om-site-card__name {
    font-weight:700;
}
#sitePicker.om-reg-invalid .om-site-cb:not(:checked) + .om-site-card__inner {
    border-color:#dc2626;
    box-shadow:0 0 0 1px rgba(220, 38, 38, 0.25);
}
.om-site-subs {
    padding:0 0.15rem;
}
.om-site-subs__heading {
    margin:0 0 0.5rem;
    font-size:0.78rem;
    font-weight:700;
    color:var(--om-navy, #0c1929);
    letter-spacing:0.02em;
}
.om-site-subs__optional {
    font-weight:600;
    color:var(--om-muted, #64748b);
}
.om-site-subs__list {
    list-style:none;
    margin:0;
    padding:0;
}
.om-site-subs__item + .om-site-subs__item {
    border-top:1px solid var(--om-border, rgba(12, 25, 41, 0.08));
}
.om-reg-form label.om-site-sub-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:0.75rem;
    margin:0;
    padding:0.5rem 0.1rem 0.5rem 0;
    cursor:pointer;
    font-size:inherit;
    font-weight:inherit;
    text-transform:none;
    letter-spacing:normal;
    color:inherit;
}
.om-site-sub-row__name {
    font-size:0.72rem;
    font-weight:600;
    line-height:1.35;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:var(--om-muted, #64748b);
    flex:1;
    min-width:0;
}
.om-reg-form .om-site-sub-row input[type="checkbox"].om-sub-cb {
    width:1.125rem;
    height:1.125rem;
    min-width:1.125rem;
    margin:0;
    padding:0;
    flex-shrink:0;
    border-radius:0.25rem;
    cursor:pointer;
    accent-color:var(--om-primary, #ed991d);
}

.om-cat-chip-check { display:none; }
.om-cat-chip-text { font-size:0.8rem; font-weight:600; line-height:1.3; letter-spacing:0.01em; }
.om-cat-count {
    margin:1.15rem 0 0; font-size:0.82rem; font-weight:600; color:var(--om-muted);
    display:flex; align-items:center; gap:0.4rem;
}
.om-cat-count.om-cat-count--ok { color:#166534; }
#omRegClientErrors { display:none; margin-bottom:1rem; }
#omRegClientErrors.om-reg-client-errors--show { display:block; }
.om-reg-invalid .om-reg-error-msg { display:block; }
.om-reg-password-hint {
    grid-column: 1 / -1;
    margin:0.25rem 0 0;
    padding:0.75rem 1rem;
    border-radius:0.5rem;
    background:rgba(237,153,29,0.08);
    border:1px solid rgba(237,153,29,0.25);
    font-size:0.8rem;
    color:var(--om-muted);
}
.om-reg-password-hint strong { display:block; margin-bottom:0.4rem; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--om-muted); }
.om-reg-password-hint ul { margin:0; padding-left:1.1rem; line-height:1.55; }
.om-reg-password-hint li { margin:0.15rem 0; }
.om-reg-password-hint li.om-pw-ok { color:#166534; font-weight:600; }

/* jQuery Validate (same pattern as backend RFP forms) */
.om-reg-form label.error {
    display: block;
    font-size: 0.8rem;
    color: #b91c1c;
    margin-top: 0.35rem;
    text-transform: none;
    letter-spacing: 0;
}
.om-reg-form input.error:not([type="checkbox"]),
.om-reg-form select.error,
.om-reg-form textarea.error {
    border-color: #dc2626 !important;
}
.om-reg-form .select2-container--default.select2-container--error .select2-selection {
    border-color: #dc2626 !important;
}
.om-reg-form .om-reg-cat-error {
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: #b91c1c;
}
