/* Aniyab UI — Text field / Text area / Specifier
 * From Figma: Components / Text field, Text Area, specifier
 *
 * Usage (text field):
 *   <label class="ay-field">
 *     <span class="ay-field__label">برچسب</span>
 *     <span class="ay-field__control">
 *       <span class="ay-field__leading">…icon…</span>
 *       <input class="ay-field__input" type="text" placeholder="متن" />
 *       <span class="ay-specifier">
 *         <span class="ay-specifier__text">ریال</span>
 *         <span class="ay-specifier__icon">…</span>
 *       </span>
 *     </span>
 *     <span class="ay-field__hint">متن کمکی این‌جا قرار می‌گیرد.</span>
 *   </label>
 *
 * Usage (textarea):
 *   <label class="ay-field">
 *     <span class="ay-field__label">برچسب</span>
 *     <span class="ay-field__control ay-field__control--area">
 *       <textarea class="ay-field__input ay-field__input--area" placeholder="توضیحات را بنویسید ..."></textarea>
 *     </span>
 *     <span class="ay-field__hint">متن کمکی این‌جا قرار می‌گیرد.</span>
 *   </label>
 *
 * States: :focus-within / :disabled / .is-error / .is-disabled
 */

.ay-field {
  --ay-field-border: var(--ay-border-dark, #D6D3D1);
  --ay-field-bg: var(--ay-surface-white, #FFFFFF);
  --ay-field-ring: transparent;
  --ay-field-hint: var(--ay-text-secondary, #737373);
  --ay-field-input: var(--ay-text-main, #404040);
  --ay-field-placeholder: var(--ay-text-secondary, #737373);

  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  width: 100%;
  max-width: 320px;
  margin: 0;
  font-family: var(--ay-font-family, dana, IRANSansfanum, Tahoma, sans-serif);
}

.ay-field__label {
  display: block;
  font-weight: 500;
  font-size: 14px;
  line-height: 28px;
  color: var(--ay-text-title, #302E2E);
  text-align: right;
}

.ay-field__control {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 48px;
  height: 48px;
  padding: 8px 14px;
  background: var(--ay-field-bg);
  border: 1px solid var(--ay-field-border);
  border-radius: 8px;
  box-shadow:
    0 1px 2px rgba(10, 13, 18, 0.05),
    0 0 0 4px var(--ay-field-ring);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.ay-field__control--area {
  align-items: flex-start;
  height: auto;
  min-height: 124px;
}

.ay-field__input {
  box-sizing: border-box;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ay-field-input);
  font-family: inherit;
  font-weight: 500;
  font-size: 14px;
  line-height: 28px;
  text-align: right;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
}

.ay-field__input--area {
  height: 108px;
  min-height: 108px;
  resize: vertical;
}

.ay-field__input::placeholder {
  color: var(--ay-field-placeholder);
  opacity: 1;
}

.ay-field__leading,
.ay-field__trailing {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 16px;
  height: 16px;
  color: var(--ay-text-secondary, #737373);
}

.ay-field__leading svg,
.ay-field__trailing svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
}

.ay-field__hint {
  display: block;
  font-weight: 500;
  font-size: 12px;
  line-height: 24px;
  color: var(--ay-field-hint);
  text-align: right;
}

/* Focus */
.ay-field:focus-within:not(.is-error):not(.is-disabled) .ay-field__control,
.ay-field__control:focus-within {
  --ay-field-border: var(--ay-info-border, #3974CD);
  --ay-field-ring: #F1F7FF;
}

/* Error */
.ay-field.is-error,
.ay-field[data-invalid="true"] {
  --ay-field-border: var(--ay-error, #D92412);
  --ay-field-ring: #FFF1F0;
  --ay-field-hint: var(--ay-error-dark, #A21303);
}

.ay-field.is-error .ay-field__control,
.ay-field[data-invalid="true"] .ay-field__control {
  --ay-field-border: var(--ay-error, #D92412);
  --ay-field-ring: #FFF1F0;
}

.ay-field.is-error .ay-specifier,
.ay-field[data-invalid="true"] .ay-specifier {
  color: var(--ay-error, #D92412);
}

/* Disabled */
.ay-field.is-disabled,
.ay-field:has(.ay-field__input:disabled) {
  --ay-field-bg: var(--ay-surface-disabled, #F4F4F5);
  --ay-field-border: var(--ay-border-disabled, #D6D3D1);
  --ay-field-ring: transparent;
  --ay-field-input: var(--ay-text-disable, #BBBAB9);
  --ay-field-placeholder: var(--ay-text-disable, #BBBAB9);
  pointer-events: none;
}

.ay-field.is-disabled .ay-field__control,
.ay-field:has(.ay-field__input:disabled) .ay-field__control {
  --ay-field-bg: var(--ay-surface-disabled, #F4F4F5);
  --ay-field-border: var(--ay-border-disabled, #D6D3D1);
}

.ay-field__input:disabled {
  color: var(--ay-text-disable, #BBBAB9);
  cursor: not-allowed;
}

/* Readonly — looks like input, not editable */
.ay-field.is-readonly,
.ay-field:has(.ay-field__input[readonly]) {
  --ay-field-bg: var(--ay-surface-disabled, #F4F4F5);
  --ay-field-border: var(--ay-border-light, #E7E5E4);
  --ay-field-ring: transparent;
}

.ay-field.is-readonly .ay-field__control,
.ay-field:has(.ay-field__input[readonly]) .ay-field__control {
  --ay-field-bg: var(--ay-surface-disabled, #F4F4F5);
  --ay-field-border: var(--ay-border-light, #E7E5E4);
}

.ay-field__input[readonly] {
  color: var(--ay-text-main, #404040);
  cursor: default;
  caret-color: transparent;
}

/* ----- Specifier (suffix / unit) ----- */

.ay-specifier {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 2px;
  flex: none;
  height: 32px;
  padding: 4px 0;
  color: var(--ay-text-secondary, #737373);
  font-weight: 500;
  font-size: 12px;
  line-height: 24px;
  white-space: nowrap;
}

.ay-specifier__text {
  color: inherit;
}

.ay-specifier__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  color: inherit;
}

.ay-specifier__icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
}

button.ay-specifier {
  margin: 0;
  padding: 4px 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
}

button.ay-specifier:focus-visible {
  outline: 2px solid var(--ay-info-border, #3974CD);
  outline-offset: 2px;
  border-radius: 4px;
}
