/* SearchInput Atom
 *
 * Uses type="text" -- no browser search quirks.
 * X shown via CSS :not(:placeholder-shown) as a background-image.
 * Same pattern as select dropdown arrow: 24px icon zone, 8px offset.
 */

.search-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.search-icon {
  position: absolute;
  left: var(--space-2);
  color: var(--text-muted);
  pointer-events: none;
  z-index: 1;
}

.search-input {
  width: 100%;
  padding: var(--space-2) var(--space-6) var(--space-2) var(--space-6);
  font-family: var(--font-family-sans);
  font-size: var(--text-sm);
  color: var(--text-primary);
  background-color: var(--bg-surface);
  border: var(--border-width-1) solid var(--border-default);
  border-radius: var(--border-radius-md);
  transition: border-color var(--duration-200) var(--easing-out),
              box-shadow var(--duration-200) var(--easing-out);
}

/* X appears when there's text -- CSS only, same SVG pattern as select arrow */
.search-input:not(:placeholder-shown) {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 7L17 17M17 7L7 17'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--space-2) center;
  background-size: var(--icon-size-sm);
}

/* Hover over clear zone: darker X, arrow cursor */
.search-input.clear-hover:not(:placeholder-shown) {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2344403c' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 7L17 17M17 7L7 17'/%3E%3C/svg%3E");
  cursor: default;
}

.search-input:focus {
  outline: none;
  border-color: var(--border-focus);
  box-shadow: var(--focus-ring-shadow);
}

.search-input::placeholder {
  color: var(--text-muted);
}

/* Size variants */
.search-input-sm .search-input { padding-top: var(--space-1_5); padding-bottom: var(--space-1_5); font-size: var(--text-xs); }
.search-input-lg .search-input { padding-top: var(--space-2_5); padding-bottom: var(--space-2_5); font-size: var(--text-base); }

.search-input-disabled .search-input {
  background-color: var(--bg-muted);
  cursor: not-allowed;
  opacity: 0.7;
}

/* No-icon variant: left padding falls back to base */
.search-input-no-icon .search-input { padding-left: var(--space-3); }
.search-input-no-icon.search-input-sm .search-input { padding-left: var(--space-2_5); }
.search-input-no-icon.search-input-lg .search-input { padding-left: var(--space-4); }
