@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.text-input-component{margin-bottom:var(--spacing-2xl);position:relative}.text-input-component label{display:block;margin-bottom:var(--spacing-sm);font-weight:600;background:linear-gradient(135deg,var(--color-text-primary),var(--color-text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:14px;letter-spacing:.3px;text-transform:uppercase}.text-input-field{width:100%;padding:var(--spacing-md) var(--spacing-lg);border:2px solid var(--color-border-medium);border-radius:var(--radius-lg);font-size:16px;font-family:inherit;color:var(--color-text-primary);background:linear-gradient(to bottom,var(--color-bg-primary) 0%,var(--color-gray-50) 100%);transition:all var(--transition-cubic);box-shadow:inset 0 2px 4px rgba(0,0,0,.06),inset 0 1px 2px rgba(0,0,0,.08)}.text-input-field:hover{border-color:var(--color-border-dark);background:var(--color-bg-primary)}.text-input-field:focus{outline:0;border-color:var(--color-primary);background:var(--color-bg-primary);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.12),0 2px 8px rgba(var(--color-primary-rgb),.15),inset 0 1px 2px rgba(0,0,0,.05);transform:translateY(-2px)}.text-input-field::placeholder{color:var(--color-text-tertiary);opacity:.7}.text-input-help-text{margin-top:var(--spacing-xs);font-size:12px;color:var(--color-text-tertiary);text-align:left}.text-input-field.error{border-color:var(--color-error);background:linear-gradient(to bottom,rgba(var(--color-error-rgb),.05) 0%,rgba(var(--color-error-rgb),.02) 100%)}.text-input-field.error:focus{border-color:var(--color-error);box-shadow:0 0 0 4px rgba(var(--color-error-rgb),.12),0 2px 8px rgba(var(--color-error-rgb),.15),inset 0 1px 2px rgba(0,0,0,.05)}.text-input-error{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:rgba(var(--color-error-rgb),.1);border:1px solid rgba(var(--color-error-rgb),.2);border-radius:var(--radius-md);color:var(--color-error);font-size:14px;font-weight:500;animation:slideDown .3s ease-out}.address-component .text-input-error{box-shadow:0 2px 8px rgba(var(--color-error-rgb),.15)}.text-input-field:disabled{background:var(--color-gray-100);color:var(--color-text-tertiary);cursor:not-allowed;opacity:.6}.text-input-field:disabled::placeholder{color:var(--color-text-tertiary);opacity:.5}.text-input-component label::after{content:""}.text-input-component label:has-text('*')::after{content:"";color:var(--color-error);margin-left:var(--spacing-xs)}@media (max-width:768px){.text-input-field{padding:var(--spacing-sm) var(--spacing-md);font-size:16px}.text-input-component label{font-size:13px}}@media (prefers-color-scheme:dark){.text-input-field{background:linear-gradient(to bottom,var(--color-bg-primary) 0%,var(--color-gray-800) 100%);box-shadow:inset 0 2px 4px rgba(0,0,0,.2),inset 0 1px 2px rgba(0,0,0,.3)}.text-input-field:hover{background:var(--color-bg-primary)}.text-input-field:focus{background:var(--color-bg-primary);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.15),0 2px 8px rgba(var(--color-primary-rgb),.2),inset 0 1px 2px rgba(0,0,0,.1)}.text-input-field.error{background:linear-gradient(to bottom,rgba(var(--color-error-rgb),.08) 0%,rgba(var(--color-error-rgb),.04) 100%)}}.text-input-field[type=date]{position:relative}.text-input-field[type=date]::-webkit-calendar-picker-indicator{background:0 0;bottom:0;color:transparent;cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto}.text-input-field[type=number]{-moz-appearance:textfield;appearance:textfield}.text-input-field[type=number]::-webkit-inner-spin-button,.text-input-field[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.text-input-field[type=email]{text-transform:lowercase}.text-input-component.compact{margin-bottom:var(--spacing-lg)}.text-input-component.compact .text-input-field{padding:var(--spacing-sm) var(--spacing-md);font-size:14px}.text-input-component.large .text-input-field{padding:var(--spacing-lg) var(--spacing-xl);font-size:18px}