/* ============================================================
   Global Form Fields  —  pf-* namespace
   Depends on: variables.css loaded first
   ============================================================ */

/* ── Field wrapper ───────────────────────────────────────── */

.pf-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* ── Label ───────────────────────────────────────────────── */

.pf-label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--clr-text-label);
  letter-spacing: 0.3px;
  margin: 0;
  text-transform: uppercase;
}

/* ── Input wrapper (for icon support) ───────────────────── */

.pf-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.pf-input-wrap .pf-input-icon {
  position: absolute;
  inset-inline-start: 14px;
  color: var(--clr-text-muted);
  pointer-events: none;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  transition: color var(--trans-fast);
}

.pf-input-wrap:focus-within .pf-input-icon {
  color: var(--clr-blue);
}

.pf-input-wrap .pf-input {
  padding-inline-start: 40px;
}

.pf-input-wrap .pf-input.no-icon {
  padding-inline-start: 14px !important;
}

/* ── Base input ──────────────────────────────────────────── */

.pf-input {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1.5px solid var(--clr-border-mid);
  border-radius: var(--radius-sm);
  background: var(--clr-bg-input);
  color: var(--clr-text-base);
  font-size: 14px;
  outline: none;
  transition: border-color var(--trans-fast), box-shadow var(--trans-fast), background var(--trans-fast);
  box-sizing: border-box;
}

.pf-input::placeholder {
  color: var(--clr-text-faint);
  font-size: 13.5px;
}

.pf-input:hover:not(:disabled):not(:focus) {
  border-color: #c8cdd6;
  background: #f0f2f7;
}

.pf-input:focus {
  border-color: var(--clr-blue);
  background: var(--clr-white);
  box-shadow: 0 0 0 3.5px rgba(37, 99, 156, 0.13);
}

.pf-input:disabled {
  background: #f0f1f5;
  color: var(--clr-text-muted);
  cursor: not-allowed;
  border-color: var(--clr-border-light);
  opacity: 0.85;
}

/* ── Error state ─────────────────────────────────────────── */

.pf-field--error .pf-input {
  border-color: var(--clr-error);
  background: #fff8f8;
}

.pf-field--error .pf-input:focus {
  border-color: var(--clr-error);
  box-shadow: 0 0 0 3.5px rgba(220, 38, 38, 0.12);
}

.pf-field--error .pf-input-icon {
  color: var(--clr-error);
}

/* ── Select ──────────────────────────────────────────────── */

select.pf-input {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: calc(100% - 13px) center;
  padding-inline-end: 36px;
  cursor: pointer;
}

/* ── Error message ───────────────────────────────────────── */

.pf-error {
  font-size: 11.5px;
  color: var(--clr-error);
  margin: 0;
  line-height: 1.4;
  display: flex;
  align-items: center;
  gap: 4px;
}

.pf-error::before {
  content: "⚠";
  font-size: 11px;
}

/* ── react-phone-input-2 inside pf-field ─────────────────── */

.pf-field .react-tel-input {
  position: relative !important;
  direction: ltr !important;
}

.pf-field .react-tel-input .flag-dropdown {
  position: absolute !important;
  top: 0 !important;
  inset-inline-start: 0 !important;
  bottom: 0 !important;
  height: 48px !important;
  border: 1.5px solid var(--clr-border-mid) !important;
  border-inline-end: none !important;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm) !important;
  background: var(--clr-bg-input) !important;
  z-index: 1 !important;
  transition: background var(--trans-fast), border-color var(--trans-fast) !important;
}

.pf-field .react-tel-input .flag-dropdown.open,
.pf-field .react-tel-input .flag-dropdown:hover {
  background: var(--clr-white) !important;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm) !important;
}

.pf-field .react-tel-input .selected-flag {
  border-radius: var(--radius-sm) 0 0 var(--radius-sm) !important;
  padding: 0 10px !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.pf-field .react-tel-input .form-control {
  height: 48px !important;
  width: 100% !important;
  border: 1.5px solid var(--clr-border-mid) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--clr-bg-input) !important;
  color: var(--clr-text-base) !important;
  font-size: 14px !important;
  padding-inline-start: 50px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  transition: border-color var(--trans-fast), box-shadow var(--trans-fast), background var(--trans-fast) !important;
}

.pf-field .react-tel-input .form-control:hover:not(:disabled) {
  border-color: #c8cdd6 !important;
  background: #f0f2f7 !important;
}

.pf-field .react-tel-input .form-control:focus {
  border-color: var(--clr-blue) !important;
  background: var(--clr-white) !important;
  box-shadow: 0 0 0 3.5px rgba(37, 99, 156, 0.13) !important;
  outline: none !important;
}

/* Error state for phone */
.pf-field--error .react-tel-input .form-control {
  border-color: var(--clr-error) !important;
  background: #fff8f8 !important;
}

.pf-field--error .react-tel-input .flag-dropdown {
  border-color: var(--clr-error) !important;
}

.pf-field--error .react-tel-input .form-control:focus {
  box-shadow: 0 0 0 3.5px rgba(220, 38, 38, 0.12) !important;
}

/* ── react-phone-input-2 country-list dropdown ───────────── */

.pf-field .react-tel-input .country-list {
  margin: 6px 0 0 0 !important;
  border: 1.5px solid var(--clr-border-mid) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.13), 0 2px 8px rgba(0, 0, 0, 0.06) !important;
  background: var(--clr-white) !important;
  max-height: 260px !important;
  overflow-y: auto !important;
  padding: 4px 0 !important;
  animation: cs-fade-in 0.14s ease !important;
}

/* custom scrollbar */
.pf-field .react-tel-input .country-list::-webkit-scrollbar {
  width: 5px;
}
.pf-field .react-tel-input .country-list::-webkit-scrollbar-track {
  background: transparent;
}
.pf-field .react-tel-input .country-list::-webkit-scrollbar-thumb {
  background: var(--clr-border-mid);
  border-radius: 10px;
}

/* search box */
.pf-field .react-tel-input .country-list .search {
  padding: 8px 10px !important;
  background: var(--clr-white) !important;
  border-bottom: 1px solid var(--clr-border-light) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 1 !important;
}

.pf-field .react-tel-input .country-list .search-box {
  width: 100% !important;
  height: 36px !important;
  border: 1.5px solid var(--clr-border-mid) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--clr-bg-input) !important;
  padding: 0 10px !important;
  font-size: 13px !important;
  color: var(--clr-text-base) !important;
  outline: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.pf-field .react-tel-input .country-list .search-box:focus {
  border-color: var(--clr-blue) !important;
  background: var(--clr-white) !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 156, 0.12) !important;
}

/* each country row */
.pf-field .react-tel-input .country-list .country {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 14px !important;
  cursor: pointer !important;
  transition: background 0.1s !important;
  background: transparent !important;
}

.pf-field .react-tel-input .country-list .country:hover {
  background: var(--clr-blue-hover) !important;
}

.pf-field .react-tel-input .country-list .country.highlight {
  background: var(--clr-blue-light) !important;
}

.pf-field .react-tel-input .country-list .country.highlight:hover {
  background: var(--clr-blue-hover) !important;
}

/* flag in dropdown */
.pf-field .react-tel-input .country-list .country .flag {
  flex-shrink: 0 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) !important;
  border-radius: 3px !important;
  margin: 0 !important;
}

/* country name */
.pf-field .react-tel-input .country-list .country .country-name {
  font-size: 13.5px !important;
  color: var(--clr-text-base) !important;
  flex: 1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  margin-inline-end: 4px !important;
}

/* dial code */
.pf-field .react-tel-input .country-list .country .dial-code {
  font-size: 12px !important;
  color: var(--clr-text-muted) !important;
  flex-shrink: 0 !important;
}

/* divider */
.pf-field .react-tel-input .country-list .divider {
  border-bottom: 1px solid var(--clr-border-light) !important;
  margin: 4px 0 !important;
  padding: 0 !important;
}

/* no-entries text */
.pf-field .react-tel-input .country-list .no-entries-message {
  padding: 10px 14px !important;
  font-size: 13px !important;
  color: var(--clr-text-muted) !important;
}

/* ── RTL: phone input always renders LTR internally ──────── */

[dir="rtl"] .pf-field .react-tel-input {
  direction: ltr !important;
}

[dir="rtl"] .pf-field .react-tel-input .flag-dropdown {
  left: 0 !important;
  right: auto !important;
  border-left: 1.5px solid var(--clr-border-mid) !important;
  border-right: none !important;
  border-inline-end: none !important;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm) !important;
}

[dir="rtl"] .pf-field .react-tel-input .form-control {
  padding-left: 50px !important;
  padding-right: 14px !important;
  text-align: left !important;
}
