.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: var(--om-primary); }
.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-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-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);
}
.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; }
.om-cat-picker.om-reg-invalid .om-cat-help { color:#b91c1c; }
#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-navy,#0c1929);
}
.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; }
