/* objects.css - object grid, object cards, selected pairs, resolution */
.obj-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; margin-bottom: 14px; }
.obj-card { border: 1px solid var(--border, #e5e5e5); border-radius: var(--radius, 8px); padding: 8px 10px; cursor: pointer; transition: all var(--transition, 150ms ease); display: flex; align-items: center; gap: 8px; position: relative; }
.obj-card:hover { border-color: var(--border-hover, #d4d4d4); }
.obj-card.selected { border-color: var(--primary, #0d9488); background: var(--primary-light, #f0fdfa); }
.obj-num { position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; border-radius: 50%; background: var(--primary, #0d9488); color: #fff; font-size: 10px; font-weight: 700; display: none; align-items: center; justify-content: center; }
.obj-card.selected .obj-num { display: flex; }
.obj-icon { font-size: 16px; flex-shrink: 0; }
.obj-label { font-size: 12px; font-weight: 500; }
.obj-label-en { font-size: 11px; color: var(--text-faint, #9ca3af); margin-top: 1px; }
.selected-pairs { margin-bottom: 12px; }
.pair-card { background: #f8fafb; border: 1px solid var(--border, #e5e5e5); border-radius: var(--radius, 8px); padding: 10px 12px; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pair-seq { width: 22px; height: 22px; border-radius: 50%; background: var(--primary, #0d9488); color: #fff; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pair-obj { font-size: 13px; font-weight: 500; flex: 1; min-width: 80px; }
.pair-obj span { font-size: 11px; color: var(--text-muted, #6b7280); font-weight: 400; margin-left: 4px; }
.pair-style-select { padding: 6px 10px; border: 1px solid var(--border, #e5e5e5); border-radius: var(--radius-sm, 6px); font-size: 12px; background: var(--bg, #fff); color: var(--text, #1a1a1a); cursor: pointer; min-width: 130px; }
.pair-style-select:focus { border-color: var(--primary, #0d9488); outline: none; }
.pair-remove { font-size: 16px; color: var(--text-faint, #9ca3af); cursor: pointer; line-height: 1; padding: 0 4px; transition: color var(--transition, 150ms ease); }
.pair-remove:hover { color: #ef4444; }
.pair-empty { font-size: 13px; color: var(--text-faint, #9ca3af); padding: 10px 0; }
.res-card { border: 1px solid var(--border, #e5e5e5); border-radius: var(--radius, 8px); padding: 10px; cursor: pointer; transition: all var(--transition, 150ms ease); text-align: center; }
.res-card:hover { border-color: var(--border-hover, #d4d4d4); }
.res-card.selected { border-color: var(--primary, #0d9488); background: var(--primary-light, #f0fdfa); color: var(--primary, #0d9488); --res-sub: var(--text-muted, #6b7280); }
