/* Selector con buscador (combo.js) */
.cb { position: relative; }
.cb-field { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-height: 48px; padding: 6px 40px 6px 10px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fff; cursor: text; position: relative; }
.cb.open .cb-field, .cb-field:focus-within { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-light); }
.cb-chips { display: contents; }
.cb-chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 4px 4px 10px; border-radius: 6px; background: var(--color-primary-light); color: var(--color-primary-dark); font-size: var(--fs-small); font-weight: 800; }
.cb-x { all: unset; box-sizing: border-box; width: 22px; height: 22px; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; font-size: 16px; line-height: 1; cursor: pointer; }
.cb-x:hover, .cb-x:focus-visible { background: rgba(0, 0, 0, .12); }
.cb-input { flex: 1 1 120px; min-width: 80px; width: auto !important; border: 0 !important; box-shadow: none !important; padding: 6px 2px !important; background: transparent !important; font-size: 15px; outline: none; }
.cb-caret { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--color-primary); pointer-events: auto; cursor: pointer; font-size: 14px; }
.cb-list { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 4px); max-height: 280px; overflow-y: auto; margin: 0; padding: 6px; list-style: none; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: 0 12px 28px rgba(51, 32, 122, .16); }
.cb-list[hidden] { display: none; }
.cb-opt { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 6px; font-size: 15px; font-weight: 600; cursor: pointer; }
.cb-opt.active, .cb-opt:hover { background: var(--color-primary-light); }
.cb-opt.sel { color: var(--color-primary); font-weight: 800; }
.cb-opt.sel::after { content: "✓"; margin-left: auto; }
.cb-label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cb-count { flex: 0 0 auto; font-size: var(--fs-small); color: var(--color-text-muted); font-weight: 700; }
.cb-create { color: var(--color-primary); font-weight: 800; }
.cb-del { all: unset; box-sizing: border-box; width: 26px; height: 26px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; color: var(--color-text-muted); cursor: pointer; flex: 0 0 auto; }
.cb-del:hover, .cb-del:focus-visible { background: #fbe3e0; color: var(--color-danger); }
.cb-empty { padding: 12px; color: var(--color-text-muted); font-size: var(--fs-small); }
.cb-msg { min-height: 0; font-size: var(--fs-small); color: var(--color-text-muted); }
.cb-msg:empty { display: none; }
.cb-msg.err { color: var(--color-danger); margin-top: 6px; }
.cb.busy .cb-field { opacity: .6; }
